java - 在 selenium 框架中不添加大量定位器的情况下验证多个元素的文本的最佳策略是什么?
问题描述
我想使用 selenium java 自动化测试,我需要检查整个页面上是否不存在特定文本。
该页面有许多可能存在此文本的元素。一般来说,如果是几个元素,我可以通过 standard 解决这个问题driver.findElement(By.xpath("//somepath")).getText()
。但是,我想编写一个没有大量定位器的高效测试。
解决方案
您可以使用 XPATH 选择器'//*[contains(text(), "YOUR_TEXT")]
来查找您需要的文本。
Python上的代码示例:
def find_text_on_the_page(text):
selector = '//*[contains(text(), "{}")]'.format(text)
elements = browser.find_elements_by_xpath(selector)
assert len(elements), 'The text is not on the page'
希望对你有帮助。
推荐阅读
- php - 在 php 中使用 setTime 和 DateTimeImmutable 时无法更改分钟
- firebase - 如何使用 firebase firestore 最小化我的颤振应用程序中的 RAM 消耗?
- php - 使用 PHP 备份 SQL Server
- javascript - js promise如何让外循环等待内循环完成
- javascript - 如何仅在子 div 元素中而不在父 div 中触发 onclick 事件?
- r - 删除 data.frame 中不包含特定值的列?
- npm - 如何升级到 ember-cli 3.17.0?
- bash - 明确判断当前运行的shell是bash还是zsh
- python - 如何根据搜索特定列中的数据在 Pandas Dataframe 中选择一行
- node.js - 节点 js:无法运行 socket.io