Selenium 大佬们,UI 自动化写脚本遇到一些问题。无法定位至下拉菜单内部,该下拉菜单为前端框架内自动生成的组件- -。帮我看一眼

autogG · 2023年03月17日 · 最后由 Dn__ 回复于 2023年03月21日 · 6763 次阅读

共收到 9 条回复 时间 点赞

曲线救国,有些控件是定位不到了,用相对位置操作鼠标事件 + 断言,优先解决功能

你要先点击这个按钮,然后框架才会把这些元素渲染到 DOM 中,接着你再去定位对应的元素

3楼 已删除
3楼 已删除

用 js 点也不行么?

脚本是 python 还是 java?

Dn__ 回复

不行的,因为你要先将这个下拉菜单定位到才能进行下一步操作。

python

1.通过 selenium.webdriver.support.ui 的 Select 进行定位
from selenium.webdriver.support.ui import Select

通过 index 进行选择 (注意 index 从 0 开始)

Select(driver.find_element_by_id("gender")).select_by_index(1)

通过 value 进行选择

Select(driver.find_element_by_id("gender")).select_by_value("2")

通过选项文字进行选择

Select(driver.find_element_by_id("gender")).select_by_visible_text("需要定位的元素")

2.定位非标签的下拉菜单

先定位到下拉菜单

drop_down = driver.find_element_by_css_selector("div#select2_container > ul")

再对下拉菜单中的选项进行选择

drop_down.find_element_by_id("li2_input_2").click()

都没发你是怎么定位的, 别人怎么知道你为什么定位不到呢


下拉菜单展开的时候,点击这个暂停试试

autogG 关闭了讨论 03月21日 15:46
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册