poium
poium copied to clipboard
page方法里面生成的动态pagelement提示没有click方法
page:
from poium import Page, PageElement
class WebviewHomePage(Page): def get_middle_elements(self): elements = [] lists = [“首页”,“热门”,“女装”] for i in lists:
elements.append(PageElement(xpath=f'//div[contains(@id, "quick-entrance-3")]/descendant::div[text()="{i}"]')) return elements
test:
class TestMallHomepage(): def test_middle_items(self, driver, logger): webviewhomepage = WebviewHomePage(driver) mid_elements = webviewhomepage.get_middle_elements() for element in mid_elements: element.click()
跑的时候提示:
element.click()
E AttributeError: 'PageElement' object has no attribute 'click'
test_homepage.py:64: AttributeError
建议不要用 for 循环定义 元素。建议修改代码如下:
from poium import Page, PageElement
class WebviewHomePage(Page):
def get_middle_elements(self):
index = PageElement(
xpath='//div[contains(@id, "quick-entrance-3")]/descendant::div[text()="首页"]')
hot = PageElement(
xpath='//div[contains(@id, "quick-entrance-3")]/descendant::div[text()="热门"]')
dress = PageElement(
xpath='//div[contains(@id, "quick-entrance-3")]/descendant::div[text()="女装"]')
class TestMallHomepage():
def test_middle_items(self, driver, logger):
webviewhomepage = WebviewHomePage(driver)
webviewhomepage.index.click()
webviewhomepage.hot.click()
webviewhomepage.dress.click()