读取硒中跨度标签外的值

时间:2019-02-05 11:17:59

标签: java selenium-webdriver

我是硒的新手,我正在尝试获取超出范围的文本 标签

<span>Source directory: </span>
"/cs/orasoa/devtools/build/2353704573222573/A2B_LSP/RPMS/x86_64"
<br>.

我想获取此值:

/cs/orasoa/devtools/build/2353704573222573/A2B_LSP/RPMS/x86_64

我正在使用xpath /html/body/div/div[4]/div[2]/span[3],但它的输出为:Source directory:

可以请人提出建议。

2 个答案:

答案 0 :(得分:0)

我已经使用以下XML对其进行了测试:

<root xmlns:foo="http://www.foo.org/" xmlns:bar="http://www.bar.org">
    <actors>
        <actor id="1">Christian Bale</actor>
        <actor id="2">Liam Neeson</actor>
        <actor id="3">Michael Caine</actor>
    </actors>
    <foo:singers>
        <foo:singer id="4">Tom Waits</foo:singer>
        <foo:singer id="5">B.B. King</foo:singer>
        <foo:singer id="6">Ray Charles</foo:singer>
    </foo:singers>
<span>Source directory: </span>
"/cs/orasoa/devtools/build/2353704573222573/A2B_LSP/RPMS/x86_64"
</root>

和XPATH的

root/span/following-sibling::text()

产生

Text='
"/cs/orasoa/devtools/build/2353704573222573/A2B_LSP/RPMS/x86_64"
'

因此或多或少是您想要的。 但是,我不确定是否

/html/body/div/div[4]/div[2]/span[3]/following-sibling::text()

在您的情况下将是有效的xpath表达式。

答案 1 :(得分:0)

假设您的html看起来像这样:

<div>
    <span>Source directory: </span>
    "/cs/orasoa/devtools/build/2353704573222573/A2B_LSP/RPMS/x86_64"
    <br />
</div>

使用xpath,您将选择:/html/body/div/div[4]/div[2] 因此,您有一个表示父div的WebElement。调用element.Text时,应该得到类似以下内容的内容:Source directory: /cs/orasoa/devtools/build/2353704573222573/A2B_LSP/RPMS/x86_64

旁注: 我非常建议在该元素上放置一个ID。您拥有的xpath非常脆弱,因为它以特定方式依赖于整个页面加载。如果有人将div添加到当前的div之上,则测试的行为将不同。