元素等待,等待元素加载,共3种方式
1.隐式等待
要等待整个页面加载完成,再进行元素定位,若找到元素会返回元素,若在指定时间内未找到元素,则每隔0.5s再次查找,如果最终没有找到元素,则抛出异常NoSuchElementException
方法:
driver.implicitly_wait(timeout) timeout为等待最大时长,单位是秒
隐式等待只需要设置一次,会对所有元素生效
import time
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
driver = webdriver.Chrome()
driver.get("https://www.jianshu.com/sign_up")
driver.maximize_window()
# 设置隐式等待为10s
driver.implicitly_wait(10)
# 找到昵称输入框并输入文本admin
driver.find_element_by_id("user_nickname").send_keys("admin")
time.sleep(3)
driver.find_element_by_id("user_nickname").clear()
time.sleep(3)
2.显示等待
表示如果能定位到元素则不触发等待,若不能定位到元素,不管页面有没有加载完成,隔一段时间后再去定位元素,如果在最大时长还没有找到元素,则抛出异常TimeoutException
使用方法:
导包 from selenium.webdriver.support.wait