当前位置: 首页 > 知识库问答 >
问题:

Selenium不会单击页面上的第一个复选框

湛宝
2023-03-14

我正在测试一个网页,我需要选择几个复选框,然后点击提交。

<ul class="input">
<li class="expandable">
<span class="expand-link collapsed" title="Click to collapse"></span>
<input type="checkbox" id="g1:1" name="g1" value="1">
<label for="g1:1">Some text</label>
<ul class="">

<ul class="input">
<li class="expandable">
<span class="expand-link collapsed" title="Click to collapse"></span>
<input type="checkbox" id="g2:1" name="g2" value="1">
<label for="g2:1">Some text</label>
<ul class="">
driver.findElement(By.id("g1:1")).click();
driver.findElement(By.id("g2:1")).click();
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.id("g1:1"))));

driver.findElement(By.id("g1:1")).click();
driver.findElement(By.id("g2:1")).click();
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(By.id("g1:1"))));

    if ( !driver.findElement(By.id("g1:1")).isSelected() ) {
        driver.findElement(By.id("g1:1")).click();
    }

    if ( !driver.findElement(By.id("g2:1")).isSelected() ) {
        driver.findElement(By.id("g2:1")).click();
    }

HTML代码段

<li class="expandable"> 
<span class="expand-link collapsed" title="Click to collapse"></span> 
<input type="checkbox" id="g1:1" name="g1" value="1"> 
    <label for="g1:1">Some text</label>
</input>

共有1个答案

洪伟兆
2023-03-14

经过一些打猎,我从来没有设法找到为什么会发生这种情况,但我最终得到了一个工作周围,我将张贴为任何人通过。

通过使用Selenium执行特定位JavaScript的能力,我能够以这种方式选中复选框。请记住,我没有删除上面的代码,因为它总是会失败的第一个复选框,不管它是什么。无论如何,这是我为解决这个问题而添加的代码:

    WebElement firstcheckbox = driver.findElement(By.id("someID"));            
    JavascriptExecutor executor = (JavascriptExecutor) driver;
    executor.executeScript("jQuery(document.getElementById('someID')).prop('checked', true)", firstcheckbox);
 类似资料:
  • 我正在使用Selenium来自动化web应用程序的一些UI单击。其中一页我有几个按钮导致一些细节。他们都有相同的名字,但我可以点击任何一个,所以我只是点击第一个。但是...有时起作用,有时不起作用。 编辑:我忘了提到它失败的地方。它在中没有问题,但是在单击下一件事情时失败了,截图和日志显示单击按钮后应该显示的页面不在那里,所以我假设按钮没有被单击。

  • 我需要在商品搜索中键入“香蕉”,然后点击“GO”按钮。 在堆栈溢出的帮助下,我可以调出火狐,输入“香蕉”...但是“Go”按钮(基于检查的Go3)不会开火!! 我试过element.click(),试过ActionChains,试过将光标移动到元素,试过验证它已经启用。它只是不会转到下一个搜索页面。 我没有得到任何错误...它只是没有进入下一页。 谢谢你能提供的任何帮助。快把我逼疯了!

  • 我想在点击某个div(“.checker”)后触发点击输入事件。换句话说,点击'.checker'将模拟点击复选框上的点击事件,远程检查它。 我写的代码可以工作,但click只有在第二次单击后才触发,第一次单击失败时才触发。这种情况甚至不会发生在'.checker'上,也会发生在checkbox上。 下面的所有HTML都包装在jquery折叠菜单中。单击“H3”后,“.sub-tree-wrap”

  • 我目前正在工作Java/Selenium webdriver自动化。然而,我被困在这个特定的部分,我无法使webdriver点击基于值的复选框。 当我不使用xpath的Axes部分时,它可以工作,但是它只能选中第一个复选框 下面是html的一个片段

  • 问题内容: 我是Scrapy的新手,正在从事刮擦练习,并且正在使用CrawlSpider。尽管Scrapy框架运行良好并且遵循相关链接,但我似乎无法使CrawlSpider抓取第一个链接(主页/登录页面)。相反,它直接刮取规则确定的链接,但不刮取链接所在的登录页面。我不知道如何解决此问题,因为不建议覆盖CrawlSpider的parse方法。修改follow = True / False也不会产生

  • 我有一个点击单选按钮的代码,一开始我用的是Chrome。使用下面的代码: 我发现了一个错误: 做研究的时候,我把代码改成: 当我单击单选按钮时,标签会在单击时获得一个附加属性。 其他编辑: 这组按钮如下所示: