如何在可用时立即访问Selenium元素,而不是等待整个页面加载

时间:2016-09-29 02:48:13

标签: python selenium selenium-chromedriver

emailReset = "changeBtn()"

设置页面加载时间被证明适得其反,因为即使在元素实际加载之前页面加载也被杀死了!

目前,当我尝试登录网站时,find_element_by_id()等待加载完整页面,然后获取元素。我已经阅读了与ExpectedConditions一起使用的隐式/显式等待,但据我所知,它们用于在整个页面加载后等待元素出现(动态)。

有没有办法可以尽快找到一个元素(轮询足够好),因为它是可见的(无需等待整个页面加载)?这样做会很棒,一些页面需要花费很长时间才能加载(流量大/可用性低/互联网连接不佳可能是原因)。 我正在使用Selenium和Python以及Chrome驱动程序。感谢。

2 个答案:

答案 0 :(得分:3)

看看selenium python documentation

它有visibility_of_element_located。

responseCode:(401 403)

答案 1 :(得分:1)

最佳做法是在采取任何进一步操作之前等待整个页面加载。但是,如果要在两者之间停止页面加载(或仅在指定时间内加载页面并继续),则可以在浏览器的配置文件设置中更改此页面。

对于Firefox:

profile = webdriver.FirefoxProfile()
profile.set_preference("http.response.timeout", 10)
profile.set_preference("dom.max_script_run_time", 10)
driver = webdriver.Firefox(firefox_profile=profile)

希望它有所帮助,干杯。