默认情况下选中该复选框,无法单击该复选框以取消选中。这是我的代码,但它返回错误说元素当前不可见,因此可能无法与之交互。 org.openqa.selenium.ElementNotVisibleException。
String checkboxXPath =("//input[contains(@type='checkbox',@name='key_IT_CONFIG.ios.restriction.functionality.enable.camera_checkboxVal')]");
WebElement elementToClick = driver.findElement(By.xpath(checkboxXPath));
elementToClick.click();
网站代码
<input type="checkbox" class="uwp_inputCheckBox"
name="key_IT_CONFIG.ios.restriction.functionality.enable.camera_checkboxVal"
id="key_IT_CONFIG.ios.restriction.functionality.enable.camera"
value="true" dir="ltr" hierarchy="false" expand="true"
checkedval="true" uncheckedval="false"
onclick="checkboxChange('IT_CONFIG.ios.restriction.functionality.enable.camera')"
checked="checked">
整个代码
答案 0 :(得分:3)
我认为你应该使用显式等待直到元素可见。请在此处查看更新代码并使用它:
String checkboxXPath =("//input[contains(@type='checkbox',@name='key_IT_CONFIG.ios.restriction.functionality.enable.camera_checkboxVal')]");
WebDriverWait wait = new WebDriverWait(driver,30);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(checkboxXPath)));
WebElement elementToClick = driver.findElement(By.xpath(checkboxXPath));
elementToClick.click();
答案 1 :(得分:0)
我有几点建议。当您在要单击的元素上有ID时,我不确定为什么XPath会如此复杂。试试这个......
driver.findElement(By.id("key_IT_CONFIG.ios.restriction.functionality.enable.camera"));
我有点猜测那是行不通的。查看HTML,我看到要点击的元素正上方的SPAN
,它上面有onclick
。我猜测,如果你点击它,它可能会触发复选框的点击...所以让我们试试......
driver.findElement(By.cssSelector("span.uwp_checkBoxSpan.uwp_checkBoxChecked"));
你可能需要在类名上检查我的拼写...我无法复制/粘贴,因为它是一张图片。
答案 2 :(得分:0)
由于Selenium适用于Javascript,我建议您通过输入Javvascript手动测试复选框点击事件。以下是您需要遵循的步骤:
如果这样可行,那么您的代码就没有理由不起作用。