SeldomQA / poium

Page Objects design pattern test library, support selenium、appium、playwright, etc
https://pypi.org/project/poium
Apache License 2.0
404 stars 138 forks source link

你好,查找的元素需要确定index怎么传参 #8

Closed 781412862 closed 4 years ago

781412862 commented 4 years ago

这是不用poium获取方式 driver.find_elements_by_android_uiautomator('new UiSelector().className(\"android.widget.Button\")‘)[2].click()

使用poium如果这样写 login = PageElement(android_uiautomator='new UiSelector().className(\"android.widget.Button\")‘)

只能获取到第一个,如果我先传入index获取第二个,需要怎么传参呢

781412862 commented 4 years ago

如果这样写: login = PageElement(android_uiautomator="new UiSelector().className(\"android.widget.Button\")[2]") 报错: selenium.common.exceptions.WebDriverException: Message: Could not parse UiSelector argument: Expected "." but saw "["

781412862 commented 4 years ago

哪位大哥能帮我看下吗,卡在这里了。

defnngj commented 4 years ago

使用 PageElements获取一组元素

login = PageElements(android_uiautomator='new UiSelector().className("android.widget.Button")')[1]

注意单、双引号的使用

781412862 commented 4 years ago

这样使用会报错。 login = PageElements(android_uiautomator='new UiSelector().className("android.widget.Button")')[2] 提示 TypeError: 'PageElements' object does not support indexing

defnngj commented 4 years ago

抱歉,用法是这样的:

from poium import Page, PageElements

class xxxPage(Page):
    login = PageElements(android_uiautomator='new UiSelector().className("android.widget.Button")')

……

page.login[0].send_keys("poium")
781412862 commented 4 years ago

可以了,完美解决问题,谢谢老哥