标题
web 企业微信实战(二)
课程价值
- 了解 PageObject 原理及六大原则
- 掌握PageObject 封装思想
- 使用分层思想封装框架
- 灵活运用三种等待方式
大纲
- PageObject 原理及六大原则
- PageObject 封装思想
- 使用分层思想封装框架
- 三种等待方式
- 企业微信实战
时长
120分钟
PPT
脚本编写
应用
PO 六大原则
三种等待方式
- 强制等待:sleep(3) 不推荐
- 隐式等待:self.driver.implicitly_wait(3) , 所有的find_element方法都生效
- 显式等待:WebDriverWait(self.driver, 10).until() 等待某一个元素出现
参考代码
https://github.com/ceshiren/HogwartsLG6
封装基类
base_page.py
class BasePage:
base_url = ""
def __init__(self, driver: WebDriver = None):
if driver == None:
# 复用浏览器,需要设置 option.debugger_address
option = Options()
option.debugger_address = "127.0.0.1:9222"
self.driver = webdriver.Chrome(options=option)
# 创建完driver , 立刻设置隐式等待
self.driver.implicitly_wait(5)
else:
self.driver = driver
if self.base_url != "":
self.driver.get(self.base_url)
def find(self,locator, value):
return self.driver.find_element(locator,value)
def finds(self,locator, value):
return self.driver.find_elements(locator,value)
def wait_for_click(self,timeout,locator):
WebDriverWait(self.driver,timeout).until(expected_conditions.element_to_be_clickable(locator))
- 首先判断 driver 是否为None,如果为None,创建一个driver, 否则 ,用已有的driver
作业
- 完成添加联系人PO封装