Xpath获取上面的元素

Rog*_*des 2 xpath selenium-webdriver

假设我有这个结构:

<div class="a" attribute="foo">
    <div class="b">
        <span>Text Example</span>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

在xpath中,如果我有内部文本,我想检索属性“ attribute”的值:文本示例

如果我使用此xpath:

.//*[@class='a']//*[text()='Text Example']
Run Code Online (Sandbox Code Playgroud)

它返回元素范围,但是我需要div.a,因为我需要通过Selenium WebDriver获取属性的值

Par*_*ras 5

嘿,有很多方法可以解决这个问题。

因此可以说Text Example,您可以使用以下文本进行识别:-

//span[text()='Text Example']/../..         --> If you know its 2 level up
Run Code Online (Sandbox Code Playgroud)

要么

//span[text()='Text Example']/ancestor::div[@class='a']  --> If you don't know how many level up this `div` is
Run Code Online (Sandbox Code Playgroud)

xpaths如果您只想使用标识元素Text Example,并且不想遍历此文本,则可以使用2以上。有简单的方法可以直接识别它:

//div[@class='a']
Run Code Online (Sandbox Code Playgroud)