在运行用于单击复选框的代码时,我观察到超时异常。
我已经与time.sleep(80)
等了,但没有成功
def __init__(self, driver):
self.driver = driver
def filterclick(self):
try:
element=WebDriverWait(self.driver,80).until(EC.presence_of_element_located((By.XPATH,"//input[@class='select-all']")))
element.click()
finally:
self.driver.close()
我要选中此复选框,但超时超时
复选框的HTML代码:
答案 0 :(得分:0)
检查元素是否根本不可见。如果是这种情况,则会引发超时异常。
或者您可以尝试以下
element = driver.find_element_by_xpath("//input[@class='select-all']")
element.location_once_scrolled_into_view
element.click()
答案 1 :(得分:0)
尝试使用element_to_be_clickable方法来代替presentation_of_element_located。
try:
wait = WebDriverWait(self.driver, 80)
element =
wait.until(EC.element_to_be_clickable((By.XPATH,"//input[@class='select-
all']")))
element.click()
finally:
self.driver.close()
这很可能会起作用,如果不能,您可以尝试使用隐式等待。我也遇到过类似的问题,但是它可以使用time.sleep函数。由于您已经尝试过time.sleep(secs),请尝试使用隐式等待。
这是使用方法:
self.driver.implicitly_wait(4)
element = find_element_by_xpath("//input[@class='select-all']")
element.click()
我建议使用“等待”变量,因为您可以在其他地方重复使用它,而不必重新输入所有内容。对于隐式等待,您可以根据自己的选择更改等待时间。