1

我需要使用 xpath 找到一个按钮,并想尝试使用嵌套的 xpath xpression。

我一直在使用表达式

 @FindBy(xpath="//*/button[contains(text(),'FOO')]")

在代码的其他地方找到其他按钮的实例,到目前为止这工作正常。但是我的代码在页面上动态创建“添加”按钮的多个实例,有时这些添加按钮是不可见的

是否可以编写一个 Xpath 表达式,该表达式可以找到一个带有文本“添加”的按钮,该按钮div位于具有h1包含文本“面板可见”的 a 中?

这是当前存在的 HTML 的编辑版本

<div class="foo1">
<div class="foo2">
<div class="foo3">
<div class="foo4">
<div class="foo5">
<h1 >New Contact</h1>
</div>
<div >
<div >
<div >
<span >
<button >Add</button>
</span> 
4

2 回答 2

1

尝试这个:

//div/h1[contains(text(), 'panel visible')]/button[contains(text(), 'Add')]
于 2015-04-23T10:20:47.777 回答
1

这有效,但紧密耦合

@FindBy(xpath="//h1[contains(text(), 'Panel visible')]/../../..//button[contains(text(), 'Add')]")

这是一个更好的答案,并且更松散耦合

(xpath="//*[contains(concat(' ', @foo, ' '), ' foo_container ')][descendant::h1[contains(text(), 'Panel visible')]]//button[contains(text(), 'Add')]") 
于 2015-04-23T11:41:57.227 回答