python - 使用 Selenium 单击动态更改的 ID 元素
问题描述
我有这段 HTML 代码:
<li class="ui-menu-item" id="ui-id-12" tabindex="-1"><a>2</a></li>
<a>2</a>
</li>
id“ui-id-12”随着数字是变化的部分而动态变化,所以我想知道如何使用 Selenium 和 XPaths 找到这个元素。我正在考虑使用锚元素标签中的内容来查找元素,但不确定这是否聪明,所以我来到这里询问什么是最佳选择。
解决方案
元素的id属性值,即ui-id-12是动态的。因此,要查找元素,您可以使用以下任一Locator Strategies:<li>
使用
css_selector
:element = driver.find_element_by_css_selector("li.ui-menu-item[id^='ui-id-']")
使用
xpath
:element = driver.find_element_by_xpath("//li[starts-with(@id, 'ui-id-') and @class='ui-menu-item']")
推荐阅读
- debugging - Goland 无法在 macos 上运行调试
- wordpress - 如何在 woocommerce 中生成自定义 wordpress 插件
- ios - 我可以更改 UIPickerView 分隔符高度吗?
- java - JAVA 代码片段:八进制/基数 8 数字的解释
- php - 如何使用 Codeigniter 3.0 中的路由将产品 ID 替换为 url 中的产品名称
- angular - 使用 Angular 6 运行时弹性搜索出错
- javascript - Javascript setInterval 函数依赖于时钟而不是依赖于负载
- amazon-web-services - Kubernetes 的 Traefik 入口控制器 (AWS EKS)
- arcgis-runtime - ArcGISRuntime 100.0 坐标转换有哪些方法
- hadoop - hadoop mapreduce.partition.keypartitioner.options 不工作