Selenium之PO设计思想

https://github.com/SeleniumHQ/selenium/wiki/PageObjects1.什么是POPageObject是一种测试设计模式减少冗余的代码和对代码进行管理分离测试步骤及测试对象2.PO的好处将测试用例及测试对象分离,提高用例可维护性集中管理元素对象代码可复用,降低成本不同PO之间没有交叉,可以支持并行开发2.PO的设计原则2.1 ...
摘要由CSDN通过智能技术生成

Selenium之PO官网

1.什么是PO

  • PageObject是一种测试设计模式
  • 减少冗余的代码和对代码进行管理
  • 分离测试步骤及测试对象

2.PO的好处

  • 将测试用例及测试对象分离,提高用例可维护性
  • 集中管理元素对象
  • 代码可复用,降低成本
  • 不同PO之间没有交叉,可以支持并行开发

2.PO的设计原则

2.1 总的原则

  • 创建一个basepage,其basepage中包含所有待测试的page的公共方法
  • 把每个要测试的对象封装在一个class类中
  • 所有的pageobject继承basepage

2.2 方法的使用原则

  • 公共方法代表UI功能,如元素定位方法封装,点击,设置内容等

2.3 方法的实现原则

  • 不要暴露页面的内部元素给外面,可以使用私有属性及私有方法,即以下划线开头
    _username_field = (By.ID
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Selenium PO(Page Object)设计模式是一种自动化测试的最佳实践,它将页面对象封装在一个类中,使测试代码更加模块化、可读性更高、易于维护。下面是一个简单的Selenium PO设计模式的例子: ```python from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC class LoginPage: def __init__(self, driver): self.driver = driver self.username_input = (By.ID, 'username') self.password_input = (By.ID, 'password') self.login_button = (By.ID, 'login-button') self.error_message = (By.ID, 'error-message') def enter_username(self, username): WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(self.username_input)) self.driver.find_element(*self.username_input).send_keys(username) def enter_password(self, password): WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(self.password_input)) self.driver.find_element(*self.password_input).send_keys(password) def click_login_button(self): WebDriverWait(self.driver, 10).until(EC.element_to_be_clickable(self.login_button)) self.driver.find_element(*self.login_button).click() def get_error_message(self): WebDriverWait(self.driver, 10).until(EC.visibility_of_element_located(self.error_message)) return self.driver.find_element(*self.error_message).text ``` 在这个例子中,我们定义了一个名为LoginPage的类,它包含了登录页面的所有元素和操作。在类的构造函数中,我们使用了Selenium的By类来定义了页面元素的定位方式,例如ID、CSS选择器等。然后,我们定义了一些方法来操作这些元素,例如输入用户名、输入密码、点击登录按钮等。在每个方法中,我们使用了Selenium的WebDriverWait类来等待元素的出现或可点击,以确保测试的稳定性和可靠性。 使用Selenium PO设计模式,我们可以将测试代码和页面元素分离开来,使测试代码更加清晰、易于维护。同时,我们还可以将页面元素的定位方式封装在类中,以便于修改和维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值