gpt4 book ai didi

java - 如何使用 Selenium 和 Xpath 通过忽略大小写的文本查找元素

转载 作者:行者123 更新时间:2023-11-30 10:02:54 26 4
gpt4 key购买 nike

我使用的是 java 版本“1.8.0_191”和 selenium 3.141.59。

我试图查明某个页面是否包含单词“error”或“erreur”。另外,我希望它不区分大小写。

查找文本很容易:

List<WebElement> elementList = driver.findElements(By.xpath("//*[contains(text(), 'error')]"));

我很难让它不区分大小写。到目前为止,我试过这个(受 this question 启发):

List<WebElement> elementList = driver.findElements(By.xpath("/html/body//text()[contains(translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'error')]"));

但它返回以下错误:

org.openqa.selenium.WebDriverException: TypeError: Expected an element or WindowProxy, got: [object Text] {}

我也试过这个:

 List<WebElement> elementList = driver.findElements(By.xpath("//*[contains(transate(text(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'error')]"));

但它也不起作用(因为它不是合法的表达式)。

那么,关于如何使这项工作有任何想法吗?

最佳答案

要在包含文本 error 的网页中创建元素的列表,忽略大写/小写,您可以使用 translate() 中的函数如下:

  • 语法:

    translate('some text','abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')
  • 代码行:

    List<WebElement> elementList = driver.findElements(By.xpath("//*[contains(translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'error')]"));

关于java - 如何使用 Selenium 和 Xpath 通过忽略大小写的文本查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56473084/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com