我想选择以下基于“好市多批发公司”值的复选框:
<td role="gridcell" style="" title="" aria-describedby="entity-search-grid_selected">
<input type="checkbox" name="chkbox" class="itmchk" value="110504">
</td>
<td role="gridcell" style="font-weight: bold;" title="Costco Wholesale Corporation" aria-describedby="entity-search-grid_name">
<div class="tree-wrap tree-wrap-ltr" style="width:18px;">
<div style="left:0px;" class="ui-icon ui-icon-triangle-1-s tree-minus treeclick"></div>
</div>
<span class="cell-wrapper">Costco Wholesale Corporation</span>
</td>
我尝试了以下代码:
driver.findElement(By.xpath("//td[span[text()='Costco Wholesale Corporation']]/preceding-sibling::td/input[@name='chkbox'"));
但是得到以下例外:
无效的选择器:无法找到一个元素与xpath表达式//td[span[text()='Costco批发公司']]/前驱兄弟姐妹::td/输入[@name='chkbox',因为以下错误'//td[span[text()='好市多批发公司']]/前面的兄弟姐妹::td/输入[@name='chkbox"
您能帮助编写xpath选择器吗。
您提供的xPath
语法不正确。。尝试使用下面的xPath-
String xPath = "//span[text()='Costco Wholesale Corporation']/preceding::input[@name='chkbox']";
driver.findElement(By.xpath(xPath));
希望能有帮助……:)
我想知道为什么要使用xpath。一旦有人改变了网站的结构,整个选择器就一文不值了。我真的建议尽可能长时间地使用css选择器。在这种情况下,它只是:
driver.findElement(By.css("input[name='chkbox'][value='110504']"));
这种方法的主要优点是,只有与元素直接相关的更改才会迫使您更改选择器。
当然,我的选择器可能是无效的,如果有一些部分的网站,你们并没有告诉我们,这可能会影响选择器。但即便如此,我相信有一种方法可以使用css更直接地访问元素。
第一个问题是xpathtd[span[text()
肯定是无效的。请记住,[...]
语法仅用于筛选器,而不是用于定义路径。所以它必须是:
//td/span[text...
此外,由于您首先选择了span
,因此需要返回到td
级别,然后选择兄弟姐妹:
//td/span[text()='Costco Wholesale Corporation']/../preceding-sibling::td/input[@name='chkbox']
鉴于您的超文本标记语言,您还可以将其简化为选择td
byt title,然后选择其同级:
//td[@title='Costco Wholesale Corporation']/preceding-sibling::td/input[@name='chkbox']
我目前正在工作Java/Selenium webdriver自动化。然而,我被困在这个特定的部分,我无法使webdriver点击基于值的复选框。 当我不使用xpath的Axes部分时,它可以工作,但是它只能选中第一个复选框 下面是html的一个片段
我正在使用它来自动化一个GWT应用程序。有一个包含以下列的表:checkbox,userID,Username,Fname,LName,email。 我得到的错误是:selenium.common.exceptions.invalidselectoreXception:消息:无效选择器:无法找到具有xpath表达式//tr[td[contains(text()='agency_group_0_ag
问题内容: 角度1.2: 我的功能状态不正确? 单击后,我想要状态。 问题答案: 和的执行顺序不明确,因为它们没有定义明确的优先级。相反,你应该使用或上,以确保您获得的正确值 模型 变量。 在您的情况下,这应该可以工作:
我有下面的标签,这是一个多个选择选项按钮的标签,每个选择有它的div里面有一个标签,然后在这个标签里面有一个ID,我需要用它来确定我想要selenium点击哪个。 我的问题是如何选择正确的标签基于它的儿童ID?
当我第一次点击它的时候,它点击了,但是没有关掉... 我试过这个,它检查和取消检查,但只有一次。 这个对我也不起作用。 null null
问题内容: 我正在使用Java学习Selenium Webdriver。作为一个学习示例,我尝试打开MakeMyTrip,访问“ 国际航班”页面,然后单击Google Chrome中的“ 单向” 单选按钮。我尝试了其他方法来定位此单选按钮,但仍无法正常工作。请在我的代码示例下面找到。 谁能帮我解决这个问题? 问题答案: 使用以下代码:- 享受..如果仍然遇到任何问题,请与我联系:)