我有一个自动注册网站的selenium脚本。在这个过程中,我有driver.implicity_wait(60)但是有一段代码,我有一个try / except语句,它试图点击一些东西,但如果找不到它,它会继续。问题是,如果元素没有被点击,它会在执行除部分代码之前等待60秒。无论如何,我可以让它不等待60秒,然后再做部分?这是我的代码:
if PROXYSTATUS==False:
driver.find_element_by_css_selector("img[title='中国大陆']").click()
else:
try:
driver.find_element_by_css_selector("img[title='中国大陆']").click()
except:
pass
换句话说,如果使用代理,偶尔会弹出一个弹出窗口,但有时它会赢。这就是为什么我需要try / except。
答案 0 :(得分:0)
您可以使用set_page_load_timeout
将默认超时更改为适合您的较低值。
您仍然需要等待一段时间,否则您可能根本不会点击您要查找的元素,因为您的脚本将比页面加载更快。
答案 1 :(得分:0)
在try块中,你可以通过使用driver.implicity_wait(10)或者甚至更低来降低10的超时时间。将它放在try块中的find元素语句之前。添加finally块并将其设置回60 driver.implicity_wait(60)。