当前位置: 首页 > 知识库问答 >
问题:

Selenium Python Xpath如何从许多嵌套的div标记中选择正确的span文本

武友樵
2023-03-14

我有一个带有左侧菜单的网页。它由许多div标签组成。我注意到当我的Selenium Python脚本运行时,它没有单击我想要从左侧菜单中单击的文本。它正在单击其他东西。我的Xpath不正确。

我想找到包含父div文本“Analysis”的文本“Statistics”(位于div标记中)

它没有单击正确的文本“Statistics”,因为HTML源代码中可能还有另一个“Statistics”。如果我从包含文本“Analysis”的div标记开始,然后找到文本“Statistics”,那么我将得到正确的元素。

我的Xpath是:

.//div//span[@title="Analysis"]/following::div[5]//span[text()="Statistics"]

超文本标记语言是:

    <div>
    <span class="" title="Analysis"
          style="white-space:nowrap;overflow:hidden;text-overflow:ellipsis;empty-cells:show;display:block;">Analysis</span>
</div>
</div>
</div>
</div>
</div>
<div style="overflow: hidden;">
    <div>
        <div>
            <div aria-selected="false" role="treeitem" aria-setsize="3" aria-posinset="1" aria-expanded="false"
                 aria-level="2">
                <div class="GJPPK2LBIF" style="padding-left: 16px;">
                    <div class="GJPPK2LBIF GJPPK2LBKF" style="padding-left: 16px;position:relative;" onclick="">
                        <div class="GJPPK2LBJF" style="left: 0px;width: 15px;height: 15px;position:absolute;">
                            <img border="0"
                                 style="width:15px;height:15px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA7/HbnjJn53wAAAABJRU5ErkJggg==) no-repeat 0px 0px;"
                                 src="http://test1:8080/clearcore/ClearCore/clear.cache.gif"
                                 onload="this.__gwtLastUnhandledEvent=" load";"/>
                        </div>
                        <div class="GJPPK2LBLF">
                            <div style="padding-left: 22px;position:relative;zoom:1;">
                                <div style="left:0px;margin-top:-8px;position:absolute;top:50%;line-height:0px;">
                                    <img border="0"
                                         style="width:16px;height:16px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaekJggg==) no-repeat 0px 0px;"
                                         src="http://test1:8080/clearcore/ClearCore/clear.cache.gif"
                                         onload="this.__gwtLastUnhandledEvent=" load";"/>
                                </div>
                                <div>
                                    <span class="" title="Statistics"
                                          style="white-space:nowrap;overflow:hidden;text-overflow:ellipsis;empty-cells:show;display:block;">Statistics</span>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

谢了Riaz

共有1个答案

夔宏深
2023-03-14

如果您有带有FirePath的FireFox,您可以测试xpath并查看您获得了多少匹配项以及哪些匹配项。例如:

//span[text()="Statistics"]

这可能会导致1个匹配节点,但也会导致更多。让我们假设有两个匹配项,您想要的是第二个。然后您会选择:

//span[text()="Statistics"][2]
 类似资料:
  • 你好,我试图使用JSoup提取嵌套DIV标签中的span标签。下面的代码只是较大代码的一个片段。 我试图提取最后一个SPAN标签中的文本(多伦多C08,莫斯公园,多伦多和120-21-S) 我已经成功地解析了文档的其他部分,但是,我似乎无法隔离这些跨度。代码片段来自一个更大的页面(整页)。我可能使用了错误的方法,但下面是我为捕获父DIV之间的跨度所做的工作(结果在帖子顶部)。 所以现在我有了第一个

  • 关于测试XML标记的正确嵌套的一个问题: null 发现/lastname标记在其父标记之外的代码或方向是什么,父标记是to,/to pair? 干杯。

  • 下面的HTML代码需要xpath 仅供参考:xpath将具有排除邮政编码的div text(),以便返回剩余的div和span文本。有时postalCode不在这个div标记中。因此,如果它存在,跳过它,如果不返回整个div标记文本。

  • 我想在每个文本之后使用jsoup提取一个文本。有没有办法选择它? 示例代码如下: 当它完成时,它会创建自动id示例id=123

  • 问题内容: 在SQL Server中, 您可以这样编写嵌套的SQL: 这样,我可以获得一个可以嵌套到其他查询中的临时表T。 但是我不能在oracle SQL中做同样的事情 它给我 选择*有效,但这不是我想要的。有人知道该怎么做吗? 问题答案: 无论我显式指定别名还是指定,您发布的查询都对我有效。收到异常后,您可以发布正在运行的确切查询吗? 我的猜测是您要选择不带双引号的内容。如果在Oracle中使

  • 我有以下html片段: 我已经用以下XPath找到了该元素: 谢谢,里亚斯