我正在尝试使用复选框上的xpath
编写一个selenium脚本到click
,但我无法执行操作,而是收到错误
元素在点(210.5,616)处无法点击。其他元素将收到点击:命令持续时间或超时:75毫秒
HTML:
<div style="float:left;">
<label class="enhanced-checkbox" for="lender_user_privacy">
<i class="icon"/>
</label>
<input id="lender_user_privacy" class="ui-helper-hidden-accessible" type="checkbox" value="1" required="required" name="lender_user[privacy]"/>
</div>
的xpath:
driver.findElement(By.xpath("//input[@id = 'lender_user_privacy']")).click();
注意:如果我在上面写xpath
xpath
答案 0 :(得分:1)
考虑到评论,要导航回父级,您可以使用xpath的父表达式ORDER BY
。
如果ORDER BY somevalue DESC NULLS LAST
标识了标签,即“复选框的子项”,则可以使用
/..
作为你的xpath。但是,考虑到您所犯的错误,等待很可能是必要的。
答案 1 :(得分:0)
xpath似乎是正确的。使用显式等待。以下代码位于c#:
try {
WebDriverWait wt;
wt = new WebDriverWait(driver, TimeSpan.FromSeconds(5));
wt.Until(ExpectedConditions.ElementToBeClickable(driver.FindElement(By.xpath("//input[@id='lender_user_privacy']")))).Click();
} catch(WebDriverException) {
// do some actions on exception if you want
}