【发布时间】:2016-10-25 03:22:05
【问题描述】:
所以基本上我的程序登录到一个页面,选中所有框并单击另一个按钮对其执行操作。
所以我登录,导航到我的网页,但我尝试使用 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()返回真假?? -
您发布的堆栈跟踪缺少实际异常。
-
嗨,我很抱歉,我应该把它放在描述中,当我尝试运行我的代码时,我在控制台中输出了一个语法错误。我尝试检查它是否返回 true 或 false,但没有任何内容打印到错误 @SaurabhGaur 的控制台 b/c
-
@Guy 对不起,我意识到我没有复制上面的部分。所以首先在控制台上打印 False, False,然后是这个异常:线程“main”中的异常 org.openqa.selenium.InvalidArgumentException: unknown error: Element is not clickable at point (205, 616)。其他元素会收到点击:...
-
@Guy 所以基本上它看起来像是在尝试点击一些不可点击的点,这就是程序中断的地方
标签: java selenium web selenium-webdriver