我正试图在我公司的web应用程序中从下拉列表中存储一个列表项的变量。我正在编写一个自动化测试,它将随机单击此下拉列表中的40项中的一项。对剧作家来说,这是可能的吗?这是我尝试过的其他变体之一,但我总是得到TypeError:类型为'Locator‘的对象没有len()。我假设这是因为我的list_item变量中没有元素?如果能提供任何帮助,我们将不胜感激。谢谢。
def test_hazard_action_from_homepage(page_setup):
# Set page variable to conftest.py page_setup fixture
page = page_setup
# Click button:has-text("Hazard Action")
page.locator("button:has-text(\"Hazard Action\")").click()
# Click input[name="hazard_date"]
page.locator("input[name=\"hazard_date\"]").click()
# Click #hazard_date_root >> text=Today
page.locator("#hazard_date_root >> text=Today").click()
# Click '//span[@aria-labelledby="select2-hazard_site-container"]'
page.locator('//span[@aria-labelledby="select2-hazard_site-container"]').click()
# Create list of "li" then randomly click
list_item = page.locator('//ul[contains(@class, "select2-results__option")] > li')
page.click(random.choice(list_item))发布于 2022-06-14 10:21:52
对任何感兴趣的人来说。我用html到json插件解决了这个问题。我使用以下函数获取列表项的数量。
def li_count(page, ul):
lis = page.locator(ul).inner_html()
lis_json = len(html_to_json.convert(lis)["li"])
li_num = randrange(0, lis_json)
return li_num发布于 2022-05-10 22:30:31
剧作家对元素的处理方式与以前的python浏览器不同.
在下拉列表中,您应该使用page.select_option(选择器)
这也是为什么在剧作家中你不能点击一个复选框,你应该page.check(选择器) https://playwright.dev/python/docs/api/class-page#page-select-option
https://stackoverflow.com/questions/72171863
复制相似问题