java - 如何获取显示文本:none element in selenium

标签 java selenium selenide

我有一个 div 类,它的 id 为 display:none。我需要从 id 中获取文本。

我尝试过使用 javascript 执行器。但我没有从 ID 中获取文本值。

SelenideElement element = $$("[class*=abc]");
JavaScriptExecutor js = (JavaScriptExecutor) driver;
js.executeScript("return arguments[0].innerHTML;", element);

这是 HTML 代码。文本的 test-id 被隐藏。

< div class = "abc 1frr">
 <div class = "efg-ghj">
<div class = "kjs-w4ejd">
 <div class = "dfdfdf_fjjks"></div>
<div class ="_s8js3244" test-id="aaa-bbb">Hello</div>
</div>
</div>
< div class = "abc 1frr">
 <div class = "efg-ghj">
<div class = "kjs-w4ejd">
 <div class = "dfdfdf_fjjks"></div>
<div class ="_s8js3244" test-id="aaa-bbb">How</div>
</div>
</div>
< div class = "abc 1frr">
 <div class = "efg-ghj">
<div class = "kjs-w4ejd">
 <div class = "dfdfdf_fjjks"></div>
<div class ="_s8js3244" test-id="aaa-bbb">are</div>
</div>
</div>
< div class = "abc 1frr">
 <div class = "efg-ghj">
<div class = "kjs-w4ejd">
 <div class = "dfdfdf_fjjks"></div>
<div class ="_s8js3244" test-id="aaa-bbb">You</div>
</div>
</div>

我期望输出为 Hello,How,are,You。由于元素隐藏,我看到除此 test-id 文本值之外的所有其他值。

如果有人能帮助我,我将不胜感激。

最佳答案

如果您想从属性中选择文本,请引用 Selenide 缩小搜索条件。现在我看到您正在传递 Selenium 元素集合($$)。当你尝试通过 id 查找时(如上所述),你也给出了一个集合。如果您想获取整个文本(您的期望),请引用更高的 div 类/id 并使用 $(higher_div_element).getText()String needText = $("[class ='abc 1frr']").parent().getText(); 提示:当有很多其他选择时,尽量不要将 Selenide 与 JS 混合使用。总是有可能使用 Selenium 化物获取元素文本或值。 为了给您更多建议,请发送 HTML 代码的更大快照(上面有一些属性)

如果您确实想使用 Selenium 化物集合(我不建议您获取文本),您可以简单地编写类似的内容: int elementSize = $$("[test-id='aaa-bbb'").size(); - 你得到 4 现在只需创建一个 for 循环并将变量传递给:

$$("[test-id='aaa-bbb'").get(i).getText();

关于java - 如何获取显示文本:none element in selenium,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57370488/

相关文章:

javascript - 选择窗口无法选择子窗口

selenium - Selenium v​​>=3.4.0 的全页截图?

java - 在 Selenide/Selenium 中模板定位器的正确方法是什么?

java - 元素对于悬停可见,但对于单击不可见

java - 尝试访问控制台日志条目时,Web 驱动程序返回空列表

java - GWT 事件处理程序的触发顺序

java - 限制 Java 控制台堆占用空间?

java - 简化 Selenium 中的复杂 XPath 表达式

java - 在 Java 中复制文件并替换现有目标

java - 在 java 中读取文件时,输入以两个垃圾字符为前缀