用于标识复选框的正确xpath

时间:2016-08-17 07:56:18

标签: javascript html eclipse selenium-webdriver

我正在尝试使用复选框上的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

2 个答案:

答案 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
}