这里有一个搜索结果块列表,我需要根据搜索结果对它执行操作。
<li>
<div>
<div> Result1 </div>
<button> click </button>
</div>
<div>
<div> Result2 </div>
<button> click </button>
</div>
<div>
<div> Result3 </div>
<button> click </button>
</div>
<div>
<div> Result4 </div>
<button> click </button>
</div>
</li>
结果每次都在变化。假设我需要在“Result2”上执行操作,然后根据我的要求,我需要点击相邻的按钮,我如何使用Java + Selenium来做到这一点?
2条答案
按热度按时间jhiyze9q1#
下面的XPATH表达式定位
<button>
节点,该节点是包含文本“Result2”的<div>
节点的后续兄弟节点k4emjkb12#
我假设你会不止一次地使用这个或类似的东西。在这种情况下,让我们把这个代码放到一个可重用的方法中,使它更容易使用。
然后说
在该方法中,
1.我添加了一个等待以确保元素可供单击。
1.我正在动态构建一个XPath来查找包含传入字符串的DIV,例如“Result2”,然后查找相邻的BUTTON。在这里使用
contains()
时要小心,因为根据“Result2”字符串的复杂程度和您要搜索的内容,您可能最终会抓住错误的元素。如果您知道使用contains()
可以正常工作,您可以使用XPath,"//div[./div[contains(text(),''{0}'')]]/button"