Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何基于div中的其他元素编写嵌套xpath表达式?_Java_Selenium_Xpath_Nested_Fluentlenium - Fatal编程技术网

Java 如何基于div中的其他元素编写嵌套xpath表达式?

Java 如何基于div中的其他元素编写嵌套xpath表达式?,java,selenium,xpath,nested,fluentlenium,Java,Selenium,Xpath,Nested,Fluentlenium,我需要找到一个使用xpath的按钮,并尝试使用嵌套的xpath表达式 我一直在使用这个表达式 @FindBy(xpath="//*/button[contains(text(),'FOO')]") 在代码中的其他地方找到其他按钮的实例,到目前为止,这一切都很好。但是,我的代码在页面上动态创建“添加”按钮的多个实例,有时这些添加按钮是不可见的 是否可以编写一个Xpath表达式,以便在包含文本“panel visible”的div中找到文本为“Add”的按钮 这里是HTML的一个修订版本,它目前

我需要找到一个使用xpath的按钮,并尝试使用嵌套的xpath表达式

我一直在使用这个表达式

 @FindBy(xpath="//*/button[contains(text(),'FOO')]")
在代码中的其他地方找到其他按钮的实例,到目前为止,这一切都很好。但是,我的代码在页面上动态创建“添加”按钮的多个实例,有时这些添加按钮是不可见的

是否可以编写一个Xpath表达式,以便在包含文本“panel visible”的
div
中找到文本为“Add”的按钮

这里是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> 

新联系人
添加
试试这个:

//div/h1[contains(text(), 'panel visible')]/button[contains(text(), 'Add')]

这是可行的,但紧密耦合

@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')]") 

是的,这是完全可能的。不过,您需要提供一些html来获得进一步的帮助。