首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >剧作家Python:单击无序列表下拉列表中的随机列表项

剧作家Python:单击无序列表下拉列表中的随机列表项
EN

Stack Overflow用户
提问于 2022-05-09 12:16:21
回答 2查看 589关注 0票数 0

我正试图在我公司的web应用程序中从下拉列表中存储一个列表项的变量。我正在编写一个自动化测试,它将随机单击此下拉列表中的40项中的一项。对剧作家来说,这是可能的吗?这是我尝试过的其他变体之一,但我总是得到TypeError:类型为'Locator‘的对象没有len()。我假设这是因为我的list_item变量中没有元素?如果能提供任何帮助,我们将不胜感激。谢谢。

代码语言:javascript
复制
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))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-14 10:21:52

对任何感兴趣的人来说。我用html到json插件解决了这个问题。我使用以下函数获取列表项的数量。

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2022-05-10 22:30:31

剧作家对元素的处理方式与以前的python浏览器不同.

在下拉列表中,您应该使用page.select_option(选择器)

这也是为什么在剧作家中你不能点击一个复选框,你应该page.check(选择器) https://playwright.dev/python/docs/api/class-page#page-select-option

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72171863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档