我尝试通过chrome webdriver选择复选框,但始终会收到类似“元素在点(x,y)处无法点击”的错误。我使用最新的ChromeDriver 2.35。谢谢你的帮助!
以下是我试过的电话“
driver.findElement(By.xpath("/html[@class='ng-scope']/body[@class='layout-default']/main[@class='container']/form[@class='form-horizontal ng-pristine ng-valid ng-valid-required']/div[@class='row ng-scope']/div[@class='col-md-7']/div[@class='panel panel-default ng-scope']/div[@class='panel-body'][1]/div[@class='list-permission'][1]/div[@class='checkbox'][1]/label")).click();
OR
driver.findElement(By.cssSelector("input[value='platform:AccessWebsite']")).click();
OR
driver.findElement(By.xpath("//input[@value='platform:AccessWebsite']")).click;
以下是html源代码的片段
<h2>Main Platform</h2>
<div class="list-permission">
<div class="checkbox">
<label>
<input name="Policy[0][Action][]" type="checkbox" value="platform:AccessWebsite">
Access to the website
</label>
</div>
.......
答案 0 :(得分:0)
当元素不在屏幕的可视部分时,我们将获得元素不可点击的异常。解决方案是将光标移动到该元素或滚动屏幕。您可以使用Actions类移动到该元素或javascript执行器进行滚动。尝试以下代码并告诉我。
WebElement element=driver.findElement(By.xpath("/html[@class='ng-scope']/body[@class='layout-default']/main[@class='container']/form[@class='form-horizontal ng-pristine ng-valid ng-valid-required']/div[@class='row ng-scope']/div[@class='col-md-7']/div[@class='panel panel-default ng-scope']/div[@class='panel-body'][1]/div[@class='list-permission'][1]/div[@class='checkbox'][1]/label"));
Actions act= new Actions(driver);
act.moveToElement(element).click().build().perform();
这应该按预期工作。 注意:某些浏览器可能不支持动作类,在这种情况下,我建议您滚动屏幕并执行单击。