我需要使用xpath找到一个按钮,并想尝试使用嵌套的xpath xpression。
我一直在使用表达式
@FindBy(xpath="//*/button[contains(text(),'FOO')]")
在代码中的其他位置查找其他按钮的实例,到目前为止这样可以正常工作。但是我的代码是动态创建“添加”的多个实例。页面上的按钮,有时这些添加按钮是不可见的
是否可以编写一个Xpath表达式,可以找到一个带有文本'添加'的按钮。位于div
内,其中h1
包含文字'面板可见&#39 ;?
以下是当前存在的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>
答案 0 :(得分:1)
试试这个:
//div/h1[contains(text(), 'panel visible')]/button[contains(text(), 'Add')]
答案 1 :(得分: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')]")