如何保证元素定位的成功率(等待机制)
""" 隐性等待:driver.implicitly_wait(5) 优点:1) 设置的是最长等待时间,只有在页面完全加载完成才执行下一步(完全加载:左上角的全不在转了) 2) 隐性等待对整个driver的周期都起作用,只要设置一次就行了 合理的加载方式:检测我的元素,是否被加载到 显性等待: 总结:隐性等待和显性等待可以同时使用,等待时间取决于两者之间的最大者 """ from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.implicitly_wait(10) # 隐性等待与显示等待可以同时使用 driver.get("https://www.baidu.com/") # 参数:最长等待时间,间隔多长时间去查询一次 WebDriverWait(driver,15,0.5).until(EC.presence_of_all_elements_located((By.LINK_TEXT,'登录'))) print(driver.find_element_by_link_text('登录').get_attribute("href"))