Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用Selenium Webdriver选择所有复选框_Selenium_Selenium Webdriver_Selenium Chromedriver_Google Chrome Devtools - Fatal编程技术网

无法使用Selenium Webdriver选择所有复选框

无法使用Selenium Webdriver选择所有复选框,selenium,selenium-webdriver,selenium-chromedriver,google-chrome-devtools,Selenium,Selenium Webdriver,Selenium Chromedriver,Google Chrome Devtools,我想选择所有项目。每页应该有50个项目。我使用以下代码: wait = WebDriverWait(browser, 10) element = wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="results-list-delivery- toolbar"]/div/ul[1]/li[4]/ul/li[3]/button'))) browser.execute_script("arguments[0].

我想选择所有项目。每页应该有50个项目。我使用以下代码:

wait = WebDriverWait(browser, 10)

element = wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="results-list-delivery- 
          toolbar"]/div/ul[1]/li[4]/ul/li[3]/button')))
browser.execute_script("arguments[0].click();", element)
我还尝试使用“//input[@type=“checkbox”和@data action=“selectall”]”作为xpath。打印(element.is_selected())显示复选框已选中

复选框的源代码如下所示:

<li class="hideInMobile has_tooltip checkbox" data-menu="viewtray">
    <span class="hidden">Click to add or remove all documents on the current page to the cart.</span>
    <input type="checkbox" data-action="selectall" aria-label="Select all items on this page">
    <span class="tooltip" role="tooltip">Select all items on this page</span>
</li>
  • 单击可将当前页面上的所有文档添加或删除到购物车。 选择此页面上的所有项目
  • 谢谢大家!

    它显示50个已选中,但复选框未选中。如果成功选择了页面上的所有项目,我可以在下载后取消选择它们,因为我将移动到下一页并继续下载所有页面

    [更新]:我可以通过单击下载按钮下载50个项目。但是,这50项不是页面上列出的50项

    单击复选框之前:

    单击后:

    我可以下载选定的项目。但是,它们与列出的不同:

    如果成功,应该是这样的:
    问题与会计设置有关。默认情况下,每页上仅显示10个项目。我有一个帐户,并将默认设置更改为每页50个项目。当我用我的帐户登录时,我有这个问题。如果我不这样做,并且使用默认的每页10个项目,那么就没有问题了

    您可以执行javascript来选中所有复选框

    driver = webdriver.Firefox()
    driver.execute_script('var checkboxes = document.getElementsByTagName("input");'
                          'for(var i = 0; i < checkboxes.length; i++) {'
                          '  if(checkboxes[i].type == "checkbox") {'
                          '      checkboxes[i].checked = true;  '
                          '   }  '
                          '}')
    
    driver=webdriver.Firefox()
    driver.execute_脚本('var checkbox=document.getElementsByTagName(“输入”);'
    '对于(var i=0;i
    您的
    元素
    没有指向复选框
    输入
    元素。它指向按钮。如果更新指向输入的xpath复选框后无法解析,请提供
    li
    元素代码。问题中已更新您是否尝试使用这些选中的复选框进行操作(删除条目,将其标记为未读)?根据我的经验,有时复选框似乎未被选中,但操作正在对其进行操作。打开“开发人员工具”并选择“元素”选项卡,关注复选框元素,并确认其在网页上可见。并检查元素是否在框架中。@victor,您是否尝试过webdriver click()方法?Javascript executor在后台执行脚本以执行操作,这些操作在UI中不可见,如果失败,不会引发异常。