implicitly_wait()隐式等待,设置页面等待加载的最长时间,这段时间不管页面需要操作的元素是否加载出来,都需要等待指定时间
WebDriverWait(),设置的时间内,默认每隔一段时间检查下元素是否加载出来,如果加载处理就立即执行下面的元素操作
因此隐式和显示时间等待结合起来用,不会造成等待时间浪费
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import NoSuchElementException
driver = webdriver.Firefox()
driver.implicitly_wait(10)
driver.get("https://www.baidu.com")
locator = (By.ID,"kw")
try:
WebDriverWait(driver,10,0.5).until(EC.presence_of_element_located(locator))
driver.find_element_by_id("kw").send_keys("selenium")
except NoSuchElementException as e:
print(e)
finally:
driver.quit()