无法使用 Selenium Webdriver select 所有复选框
Unable to select all checkboxes using Selenium Webdriver
我要select所有项目。每页应该有 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" and @data-action="selectall"]' 作为 xpath。 print(element.is_selected()) 显示复选框已 selected。
checkbox源码如下:
<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 个,但复选框未 selected。如果页面上的所有项目都已成功 selected,我可以在下载后取消 select 它们,因为我将转到下一页并继续下载所有页面。
[更新]:我点击下载按钮可以下载50个项目。但是,那 50 个项目并不是页面上列出的那 50 个项目。
在点击 Checkall 框之前:
点击后:
我可以下载 selected 的项目。但是,它们与列出的不同:
如果成功的话应该是这样的:
问题与会计设置有关。默认情况下,每页仅显示 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; '
' } '
'}')
我要select所有项目。每页应该有 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" and @data-action="selectall"]' 作为 xpath。 print(element.is_selected()) 显示复选框已 selected。
checkbox源码如下:
<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 个,但复选框未 selected。如果页面上的所有项目都已成功 selected,我可以在下载后取消 select 它们,因为我将转到下一页并继续下载所有页面。
[更新]:我点击下载按钮可以下载50个项目。但是,那 50 个项目并不是页面上列出的那 50 个项目。
在点击 Checkall 框之前:
我可以下载 selected 的项目。但是,它们与列出的不同:
如果成功的话应该是这样的:
问题与会计设置有关。默认情况下,每页仅显示 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; '
' } '
'}')