gpt4 book ai didi

java - XPath Java Selenium 尝试根据另一列中的文本单击一个列中的值

转载 作者:行者123 更新时间:2023-12-03 16:52:27 24 4
gpt4 key购买 nike

我需要根据第 1 列中的文本单击 html 表第 5 列中的按钮。第 1 列是用户名第 5 列是没有 ID 的按钮我需要点击。每个表格单元格有多个 Li在里面。所以第一个单元格在 Li 中有名称、电子邮件和公司。 .

我想说如果user name = foo然后单击 col 5 中的按钮

我当前在第 1 列中查找用户名的 xpath 就是这样(并且有效)

driver.findElement(By.xpath("//tr//td//li[contains(text(), 'Edith Fields')]"));

但是我现在不知道该怎么说,我已经使用该行来单击该行第 5 列中的按钮。另外我假设 xpath 我已经返回了特定 <Li> 的 web 元素不是 <TR>所以我可能需要得到它的 parent ?

没有将整个表格 HTML 粘贴为大,但这是一行 col 1 和 col 5
<tr class=" ev_dhx_skyblue">
<td valign="middle" bgcolor="white" align="left" title=" Edith Fields email@foo.com ">
<ul>
<li title=" Edith Fields email@foo.com "> Edith Fields </li>
<li class="last" title=" Edith Fields email@foo.com "> email@foo.com </li>
</ul>


<td valign="middle" bgcolor="white" align="left">
<ul>
<li>
<li class="last">
<a onclick="liftAjax.lift_ajaxHandler("ffffgggg=true", null, null, null); return false;">Reset Password</a>
</li>
</ul>

最佳答案

您应该尝试使用以下 xpath :-

String xpath = "(.//td[descendant::li[contains(text(), 'Edith Fields')]]/following::td//a[contains(text(), 'Reset Password')])[1]"

或者
String xpath = "(.//td[descendant::li[contains(text(), 'Edith Fields')]]/following::a[contains(text(), 'Reset Password')])[1]"

或者
String xpath = "(.//td[descendant::li[contains(text(), 'Edith Fields')]]/following::a)[1]"

使用以上任何一个 xpath找到如下元素:-
driver.findElement(By.xpath(xpath));

关于java - XPath Java Selenium 尝试根据另一列中的文本单击一个列中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39339087/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com