获取标题和智能等待

获取断言信息

前提驱动已经配置号,可以正常访问网页

# 获取当前页面标题
print(driver.title)
# 获取当前页面网址
print(driver.current_url)
智能等待
"""
webdriver 提供了两种等待:显示等待,一种是隐式等待
隐式等待:
	对配置之后的全部生效-浪费时间
    设置一个超时时间
    在这个时间内,不断寻找元素
    超时找不到就报错
    超时前找到,就继续执行,而不会接着等待
    比如超时等待时间是5s,第三秒找到了,就会继续执行,而不等第四第五秒
   
   driver.implicitly_wait(3)
   
显示等待:
	可以定制配置-节约时间
    设置一个超时时间和一个元素查找条件
    在这个时间内,不断寻找元素,间隔时间默认0.5秒
    超时找不到就报错
    超时前找到,就继续执行,而不会接着等待
    比如超时等待时间是5s,第三秒找到了,就会继续执行,而不等第四第五秒
    
    WebDriverWait(driver, 10, 0.5).until(  
   EC.visibility_of_element_located(
        (By.CSS_SELECTOR,"元素")
    )
)
显示等待一般都是要作为basepage出现的,不然用起来都让你生不如死的
 """

from seleniumstu.testOPMS.myDriver.myDriver import Driver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from seleniumstu.testOPMS.utils.mySettings import timeout,poll_time

class BasePage:
    def __init__(self):
        self.driver = Driver.get_driver('chrome')
    def get_element(self,locator):
        WebDriverWait(driver=self.driver,
                      timeout=timeout,
                      poll_frequency=poll_time).until(
            EC.visibility_of_element_located(locator)
        )
        return self.driver.find_element(*locator)

    def get_elements(self, locator):
        """
        显示等待,查找元素
        :param locator: 要求传入的参数是一个元组,表示元素定位方法和表达式
        :return: 元素列表
        """
        WebDriverWait(
            # 传入浏览器对象
            driver=self.driver,
            # 传入超时时间
            timeout=timeout,
            # 设置轮询时间
            poll_frequency=poll_time).until(
            EC.visibility_of_element_located(locator)
        )

        return self.driver.find_elements(*locator)
posted @ 2021-03-27 23:23  太白之魔童降世  阅读(57)  评论(0编辑  收藏  举报