获取标题和智能等待
获取断言信息
前提驱动已经配置号,可以正常访问网页
# 获取当前页面标题
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)
嗨~今天你暴躁了吗?
~~~关注我,更多精彩内容带给你,关注私聊带走绝密知识~~~