如何保证元素定位的成功率(等待机制)

"""
隐性等待: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"))

 

posted @ 2019-04-28 15:11  jiyanjiao  阅读(382)  评论(0编辑  收藏  举报