poium icon indicating copy to clipboard operation
poium copied to clipboard

page方法里面生成的动态pagelement提示没有click方法

Open KevinChan168 opened this issue 5 years ago • 1 comments

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

KevinChan168 avatar May 31 '19 03:05 KevinChan168

建议不要用 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()

defnngj avatar Jun 11 '19 15:06 defnngj