Selenium+Python测试元素等待--显式等待、隐式等待

'''
元素等待
显示等待是针对某一个元素进行相关等待判定
隐式等待不针对某一个元素进行等待,而是全局元素等待
---------------------------------------------
WebDriverWait--显示等待针对元素时使用
expected_conditions--预期条件类()
NoSuchElementException--用于隐式等待抛出异常
By用于元素定位
---------------------------------------------
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
'''
#显式等待---------------------------------------------------------------
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver=webdriver.Firefox()
driver.get("https://cn.bing.com/")
sleep(4)
driver.find_element_by_css_selector("#sb_form_q").send_keys("Python")
#显式等待--判断搜素按钮是否存在
element=WebDriverWait(driver,5,0.5).until(EC.presence_of_element_located((By.CLASS_NAME,"b_searchboxSubmit")))
element.click()
sleep(4)

driver.quit()

#显式等待---------------------------------------------------------------

​​​​​​​#隐式等待---------------------------------------------------------------

from selenium import webdriver
from time import sleep,ctime
from selenium.common.exceptions import NoSuchElementException

driver=webdriver.Firefox()
driver.get("http://www.baidu.com/")
sleep(2)

driver.implicitly_wait(2)

#检测搜索框是否存在
try:
    print(ctime())
    driver.find_element_by_css_selector("#sb_form_q").send_keys("Python")
    driver.find_element_by_css_selector(".b_searchboxSubmit").click()
except NoSuchElementException as msg:
    print(msg)
finally:
    print(ctime())
sleep(4)
driver.quit()

​​​​​​​#隐式等待---------------------------------------------------------------

猜你喜欢

转载自blog.csdn.net/u012002125/article/details/82086040