Selenium WebDriver:复选框元素无法单击



我尝试通过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();

driver.findElement(By.cssSelector("input[value='platform:AccessWebsite']")).click();

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>
    .......
    

当元素不在屏幕的视觉部分时,我们将获得元素而不是可单击的例外。解决方案是将光标移至该元素或滚动屏幕。尝试以下代码,让我知道。

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();

这应该按预期工作。注意:某些浏览器可能不支持操作类,在这种情况下,我建议您滚动屏幕并进行单击。

最新更新