Web自动化测试之四、隐式等待与显式等待

1.等待的三种方式

 time.sleep(5)

2.隐式等待

self.driver.implicitly_wait(5)默认轮询查找(0.5秒)元素是否出现,确定作用于全局

 3.显示等待

 

import selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait


class TestWeixin():
    url = "https://work.weixin.qq.com/wework_admin/loginpage_wx?from=myhome_baidu"

    def setup(self):
        self.driver = webdriver.Chrome()
        self.driver.get(url=self.url)

    def teardown(self):
        self.driver.quit()

    def test_firt(self):
        self.driver.get(url=self.url)
        time.sleep(10)

    # 第一种等待方式--->死等
    def test_wait1(self):
        self.driver.get(url=self.url)
        time.sleep(10)

    # 第二种等待方式--->隐式等待
    def test_wait2(self):
        self.driver.implicitly_wait(5)

    # 第三种等待方式--->显示等待
    def test_wait3(self):
        #     # 自定义一个检查条件
        #     def func(x):
        #         return len(self.driver.find_elements(By.XPATH, '//*[@id="wework_admin.loginpage_wx_$"]/main/div[2]/a')) >= 1
        #
        #     WebDriverWait(self.driver, 10).until(func, "显示等待")
        #     self.driver.find_element(By.XPATH, '//*[@id="wework_admin.loginpage_wx_$"]/main/div[2]/a').click()

        # 或者采用until(expected_conditions)
        WebDriverWait(self.driver, 10).until(
            expected_conditions.element_to_be_clickable(
                (By.XPATH, '//*[@id="wework_admin.loginpage_wx_$"]/main/div[2]/a')))
        self.driver.find_element(By.XPATH, '//*[@id="wework_admin.loginpage_wx_$"]/main/div[2]/a').click()
三种等待方式示例
原文地址:https://www.cnblogs.com/zwldyt/p/13170043.html