- selenium里面的Webdriver的get()方法默认是阻塞的,也就是说要等整个页面全都加载完它才会相应。
- 但我们大部分时候不需要用到页面里的所有东西,也许只需要用到里面的一个元素就行了
所以下面是我的解决方法:
初始化代码:
# 设置driver.get()非阻塞
option = webdriver.ChromeOptions()
option.page_load_strategy ='none'# 设置 pageLoadStrategy 为 "none" (也就是非阻塞)
driver = webdriver.Chrome(options=option)
driver.get("https://baidu.com")# 替换你的目标网站
- 那么问题来了,设置为非阻塞确实能大大节约时间,但有可能你想要的网页上的那个元素还没加载出来,他就给你继续做下面的操作了,这怎么办。
我的解决方法是:用while循环判断找到符合条件元素的个数。如果是0,那就继续找;如果非0,就表明找到了,就可以跳出循环,做接下来的操作了。
代码:
whileTrue:
elem = driver.find_elements(By.XPATH, xpath)print('cnt :',len(elem))iflen(elem)>0:
elem = elem[0]break# 找到元素,跳出循环后,做你接下来的事情
当然我也是刚了解selenium这个库,这里提供给各位一个思路,如果各位有更好的思路欢迎在评论区跟我交流 : )
本文转载自: https://blog.csdn.net/qq_43555854/article/details/132483056
版权归原作者 whoammiiiiii 所有, 如有侵权,请联系我们删除。
版权归原作者 whoammiiiiii 所有, 如有侵权,请联系我们删除。