无论如何,在尝试/除外时是否要阻止隐瞒等待?

时间:2018-05-26 01:58:49

标签: python-3.x selenium

我有一个自动注册网站的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。

2 个答案:

答案 0 :(得分:0)

您可以使用set_page_load_timeout将默认超时更改为适合您的较低值。

您仍然需要等待一段时间,否则您可能根本不会点击您要查找的元素,因为您的脚本将比页面加载更快。

答案 1 :(得分:0)

在try块中,你可以通过使用driver.implicity_wait(10)或者甚至更低来降低10的超时时间。将它放在try块中的find元素语句之前。添加finally块并将其设置回60 driver.implicity_wait(60)。