selenium--全局等待,智能等待

来源:互联网 发布:java 接口 抽象类 编辑:程序博客网 时间:2024/06/09 23:53

隐式等待是在尝试发现某个元素的时候,如果没能立刻发现,就等待固定长度的时间。默认设置是0秒。一旦设置了隐式等待时间,它的作用范围就是Webdriver对象实例的整个生命周期。

#coding=UTF-8from selenium import webdriverimport timeif __name__ == '__main__':    driver = webdriver.Firefox(executable_path='D:\Mozilla Firefox')    driver.maximize_window()    driver.get('file:///E:/selenium_study/demo.html')    time.sleep(2)    driver.implicitly_wait(10)    #全局最长等待时长    #对于所有的findelement方法生效,每一个findelement方法在查询元素的时候,每0.5S判断一次。    # 判断是不是正确查询到元素了。没有发生异常。最长查10S,20次还没有查询完抛异常    driver.find_element_by_class_name('wait').click()    # time.sleep(3)    print driver.find_element_by_class_name('rad').text

智能等待

#coding=UTF-8from selenium import webdriverimport timefrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.by import Byif __name__ == '__main__':    driver = webdriver.Firefox(executable_path='D:\Mozilla Firefox')    driver.maximize_window()    driver.get('file:///E:/selenium_study/demo.html')    time.sleep(2)    driver.find_element_by_xpath("//input[@class='wait']").click()     #等待wait。。。until,    # WebDriverWait类,driver,最长等待时间,多久询问一次。until,直到该元素出现为止    element = WebDriverWait(driver,10,0.5).until(        #等到元素可以被定位        EC.visibility_of_element_located((By.XPATH,"//div[@id='display']/div"))    )    #EC当某个自定义元素出现    print element.text