java - 使用 Selenium + Java 选择网页上的所有复选框时出现问题

标签 java selenium web selenium-webdriver

所以基本上我的程序登录到一个页面,选中所有框并单击另一个按钮来执行操作。

因此,我登录并导航到我的网页,但我尝试使用 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/

相关文章:

Python Selenium Webdriver - 动态更改下载目录

java - Spring/Java 从一个方法调用变量作为变量

javascript - 为页面上的多个元素创建文本弹出窗口

java - FileReader 抛出异常,因为文件路径语法错误?

java - 无法在 Selenium Webdriver (JAVA) 中启动 Internet Explorer 或 Chrome

selenium - 使用 Selenium 抓取 React-table

mysql - 用于只读网站的 SQLite 或 MySQL?

java - 理解java中引用其他类——空指针异常

使用 JMS 发布订阅的 Java EE 替代方案

Java:XMLEncoder writeObject 子对象