【问题标题】:How to get text from nested div using xpath in Selenium Webdriver (Java)如何在 Selenium Webdriver (Java) 中使用 xpath 从嵌套 div 中获取文本
【发布时间】:2016-12-29 20:42:10
【问题描述】:

我想从嵌套的 div 中选择文本,但在使用 xpath 作为定位器时无法获取文本。任何人都可以帮助并建议我如何从嵌套的 div 中获取文本。代码如下...

<div class=”dijitPopup dijitTooltipDialogPopup” id=”SMGGP_dropdown” role=”presentation” style=”RIGHT: auto; LEFT: SO6px; Z-INDEX: 1000; DISPLAY: none; TOP:S83px; VISIBILITY: visible” dijitPopupParent=”>
 <div tablndex=”-1” title=”” class=”dijitTooltipDialog dijitTooltipABLeft dijitTooltipAbove” id=”SMGGP” role=presentation” style=”WIDTH: 300px; POSITION: ;
TOP: 0px; VISIBILITY: visible” widgetld=SMGGP”>
<div class=”dijitTooltipContainer” role=”presentation”>
 <div class=”dijitTooltipContents dijitTooltipFocusNode” role=”dialog” data-dojo-attach-point=’containerNode”>
Text that needs to be picked</div>

</div>
</div>
</div>

【问题讨论】:

    标签: html xpath


    【解决方案1】:

    有几种方法可以做到这一点。一种简单的方法:获取具有 ID 的元素,然后通过 xpath 在该元素中找到 div:

    (在 C# 中,但 Java 非常接近)

    var topDiv = _driver.FindElementById("SMGGP");
    var div = topDiv.FindElementByXPath("//div/div");
    

    【讨论】:

    • 我采用了同样的方法。我能够在同一页面上找到另一个 div,但不能找到此代码段。此代码段用于帮助内容,当用户将鼠标悬停在帮助图标上时会显示帮助内容。否则不会显示。一旦用户移动鼠标,内容窗口就会消失。我无法使用 Web 开发人员工具找到帮助内容窗口。唯一的方法是检查代码。由于它具有动态行为,所以这会是 div 没有被定位的原因吗?
    • @ambysan 通常,鼠标悬停时弹出的隐藏 div 已加载但隐藏。它可能在另一个隐藏的 div 中吗?也许看看页面源并尝试找到隐藏的div,看看你是否可以通过xpath访问它。
    • 感谢本的回复。赞赏。我会再试一次。
    猜你喜欢
    • 2015-06-23
    • 1970-01-01
    • 1970-01-01
    • 2016-06-13
    • 1970-01-01
    • 2015-04-05
    • 2017-01-20
    • 2014-03-01
    • 2012-06-04
    相关资源
    最近更新 更多