Python 在迭代过程中,相同的元素变得不可访问
我使用Python 在迭代过程中,相同的元素变得不可访问,python,html,selenium,xpath,automation,Python,Html,Selenium,Xpath,Automation,我使用SeleniumPython为不同的用户执行相同的操作,流程如下: 1-网页显示用户ID列表 2-我搜索1个用户id(迭代) 3-我单击用户id旁边的复选框 4-单击“完成” 我的问题是这个复选框,它在迭代的第一行是可点击的,但是在下一行它变得不可点击 复选框元素: 输入复选框可能处于禁用状态,或者在复选框变为可用之前,某些javascript加载尚未发生 请尝试以下代码: from selenium.webdriver.support.wait import WebDriverWait
Selenium
Python
为不同的用户执行相同的操作,流程如下:
1-网页显示用户ID列表
2-我搜索1个用户id(迭代)
3-我单击用户id旁边的复选框
4-单击“完成”
我的问题是这个复选框,它在迭代的第一行是可点击的,但是在下一行它变得不可点击
复选框元素:
输入复选框可能处于禁用状态,或者在复选框变为可用之前,某些javascript加载尚未发生
请尝试以下代码:
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
WebDriverWait(driver, 15).until(EC.element_to_be_clickable((By.XPATH,"//tbody/tr[1]/td[1]/span[1]/label[1]/span[1]/input[1]"))).click()
另一个问题可能是xpath的更改取决于您登录的用户
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
WebDriverWait(driver, 15).until(EC.element_to_be_clickable((By.XPATH,'//input [@type="checkbox"]'))).click()
只有当您有1个复选框时,上述代码才有效
这段代码将尝试单击页面上的所有复选框,如果这样做有效,我们可以缩小XPath的范围
els=driver.find_elements_by_xpath('//input [@type="checkbox"]')
for el in els:
try:
el.click()
except:
pass
您好,我已经在使用,但它仍然不工作,有两个复选框(全选和用户复选框)您可以提供web URL,请尝试第二个答案。希望它应该选择我添加到帖子中的第一个可用复选框您的第二个答案出现错误其他元素会收到点击您可以运行此命令告诉我结果打印(len(driver.find_elements_by_xpath['//input[@type=“checkbox”]'))