selenium chrome驱动程序的getText()方法有时会返回一个空字符串

 zjjj-jz政 发布于 2023-02-06 23:41

我有一个奇怪的案例,其中selenium chrome驱动程序getText()方法(java)为某些元素返回一个空字符串,即使它为其他元素返回一个非空字符串xpath.这是一个页面.

Text_1
Text_2
Text_3
Text_4
Text_5
Text_6

每个内标签的,我可以得到有效的返回值getTagName(),getLocation(),isEnabled(),和isDisplayed().但是,getText()为某些div返回一个空字符串.

此外,我注意到如果我使用mac chrome驱动程序,它始终是'Text_5',getText()返回一个空字符串.如果我使用Windows Chrome驱动程序,它始终是'Text_2',getText()返回一个空字符串.如果我使用firefox驱动程序,则getText()返回所有div的预期文本.

有没有其他人有这个困难?

在我的代码中,我使用这样的东西......

ArrayList list = (ArrayList) driver.findElements(By.xpath(“my xPath here”));
for (WebElement e: list) System.out.println(e.getText());

如下所示,这是xPath我正在使用的实际情况.上面的页面代码段处理最后两个div.

//*[@class='gwt-DialogBox']//tr[contains(@class,'data-grid-table-row')]//td[contains(@class,'lms-assignment-selection-wizard-cell')]/div/div

Faiz.. 75

更新:textContent属性是更好的选项,并且在大多数浏览器中都受支持.在这篇博客文章中详细解释了这些差异:innerText与textContent

作为替代方案,该innerText属性将返回DOM中存在的元素的文本内容.

element.getAttribute("innerText")

isDisplayed()当元素没有被隐藏但在视口之外时,该方法有时会跳过; getText()为这样的元素返回一个空字符串.

您还可以通过使用javascript滚动到视口来将元素带入视口,如下所示:

((JavaScriptExecutor)driver).executeScript("arguments[0].scrollIntoView(true);", element);

然后getText()应该返回正确的值.

有关该isDisplayed()方法的详细信息,请参阅此SO问题:

Selenium WebDriver的isDisplayed()方法如何工作

2 个回答
  • 更新:textContent属性是更好的选项,并且在大多数浏览器中都受支持.在这篇博客文章中详细解释了这些差异:innerText与textContent

    作为替代方案,该innerText属性将返回DOM中存在的元素的文本内容.

    element.getAttribute("innerText")
    

    isDisplayed()当元素没有被隐藏但在视口之外时,该方法有时会跳过; getText()为这样的元素返回一个空字符串.

    您还可以通过使用javascript滚动到视口来将元素带入视口,如下所示:

    ((JavaScriptExecutor)driver).executeScript("arguments[0].scrollIntoView(true);", element);
    

    然后getText()应该返回正确的值.

    有关该isDisplayed()方法的详细信息,请参阅此SO问题:

    Selenium WebDriver的isDisplayed()方法如何工作

    2023-02-06 23:54 回答
  • WebElement.getAttribute(“ value”)应该可以帮助您!

    2023-02-06 23:59 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有