1.隐式等待一次声明后,对下面所有的代码都有效。
缺点:不管定位任何元素,都会走隐式等待的代码中去,效率较低,不建议用。
from selenium import webdriver # 创建浏览器驱动对象,这里是打开浏览器 driver = webdriver.Chrome("D:\toolseleniumchromedriver.exe") # 声明隐式等待,只对声明之后的代码有效 # 隐式等待默认参数是秒,如下代码,最大超时时间为 5 秒 # 当脚本执行到某个元素定位的时候,能定位就继续执行 # 如果不能定位,以轮询的方式(0.5s 检查一次)不断的判断元素是否能被定位 # 假设,在第 x(x<=最大超时时间) 秒定位到元素了,就不等了,继续往下执行 # 若直到最大时长还没定位成功,就抛出异常 driver.implicitly_wait(5) # 访问网址 driver.get("https://m.weibo.cn/") # 点击大家都在搜 driver.find_element_by_xpath("/html/body/div/div/div/div/a//div").click() # 点击微博热搜榜 driver.find_element_by_css_selector("#app > div:nth-child(1) > div:nth-child(1) > div.card.m-panel.card16.m-col-2 > div > div > div:nth-child(8) > div > div > h4")