所以基本上我的程序登录到一个页面,选中所有框并单击另一个按钮来执行操作。
因此,我登录并导航到我的网页,但我尝试使用 Java + Selenium 使用这段代码单击相关网页上的所有框,但它没有执行任何操作:
java.util.List<WebElement> els =
driver.findElements(By.xpath("//input[@type='checkbox']"));
for (WebElement el : els) {
if (!el.isSelected()) {
el.click();
}
}
当我检查复选框元素时的 HTML 代码如下所示:
<div class="actions-column table-cell">
<input data-ng-model="item.isChecked" data-ng-show="item.canEdit ||item.canPromote || item.displayBumpUpCTA" class="check-ad ng-valid ng-dirty" value="1200304741" data-ng-change="selectItem(item)" type="checkbox">
我也尝试在上面的代码中使用 CSS 选择器,但似乎没有任何东西可以选择所有框:( :(
我可以发布问题的屏幕截图/视频等,但回顾一下,当我运行代码时根本没有检查任何复选框
我也在控制台中得到了这个错误:
Exception in thread "main" org.openqa.selenium.InvalidArgumentException: unknown error: Element is not clickable at point (205, 616). Other element would receive the click: <div class="controls table-row">...</div>
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{applicationCacheEnabled=false, rotatable=false, chrome={userDataDir=C:\Users\user\AppData\Local\Temp\scoped_dir6992_17191}, takesHeapSnapshot=true, databaseEnabled=false, handlesAlerts=true, version=53.0.2785.143, platform=XP, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}]
Session ID: [insert numbers here]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:164)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:636)
at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:284)
at org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:84)
at test.CodeAutomate.main(CodeAutomate.java:39)
最佳答案
!el.isSelected()
返回一些内容。但你的情况不清楚。请将其更改为 el.isSelected()==false
并尝试一下。
关于java - 使用 Selenium + Java 选择网页上的所有复选框时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40230837/