在Selenium/Python中使用显式等待
我一直试图在单击某些web元素之前使用显式等待 我相信WebDriverWait不会在抛出异常之前等待完全延迟。它将跳转保持为“立即”在Selenium/Python中使用显式等待,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,我一直试图在单击某些web元素之前使用显式等待 我相信WebDriverWait不会在抛出异常之前等待完全延迟。它将跳转保持为“立即” try: saveLink = "//*[@id='top-level-buttons']/ytd-button-renderer[2]/a" save_present = EC.presence_to_be_clickable((By.XPATH,saveLink)) We
try:
saveLink = "//*[@id='top-level-buttons']/ytd-button-renderer[2]/a"
save_present = EC.presence_to_be_clickable((By.XPATH,saveLink))
WebDriverWait(driver,5).until(save_present)
button = driver.find_element_by_xpath(saveLink)
ActionChains(driver).move_to_element(button).click(button).perform()
except:
print("Timed out save link")
我还遇到了send_key的问题,在继续之前它没有完成发送。通过捕获除超时错误之外的所有异常,您将不知道是否发生了其他异常。如果显式地只捕获超时错误和/或记录捕获的异常,您将看到发生了什么 我想补充一点: 从selenium.common.exceptions导入TimeoutException 并将Exception:更改为except:TimeOutException 这样,您就可以捕获WebDriverWait过期时发生的异常。如果是另一个例外,那么我们就可以知道 此外,您可能希望将状态更改为可点击,将元素更改为可点击,因为我认为您当前的选项无效
您的链接定位器也可能无效,在这种情况下,发布页面HTML将有助于缩小该问题。谢谢,已解决该问题。我有6个try/except块,在最后2个块上错过了TimeoutException。可点击的状态是不正确的,但我的除外位隐藏了该信息: