Summary:
selenium自动化测试框架PO设计模式
1.Online resource
For really impatience:
Selenium 八种元素定位方法
selenium自动化测试框架PO设计模式
1.1-Selenium是什么?Selenium自动化测试介绍
Selenium - 知乎
For dummies:
零基础如何学习自动化测试
深入了解自动化:对自动化测试的误解
2. Overview
What is selenium?
Selenium是一个免费的(开源)自动化测试组件,适用于跨不同浏览器和平台的Web应用程序。它非常类似于HP Quick Test Pro (QTP现在叫UFT),只是Selenium侧重于自动化基于Web的应用程序。使用Selenium工具进行的测试通常称为Selenium测试。
Selenium不仅仅是一个工具,而是一套软件,每个软件都满足组织的不同测试需求。它有四个组成部分:
1.Selenium集成开发环境(IDE)
2.Selenium远程控制 (RC)
3.WebDriver
4.Selenium Grid
3. selenium自动化测试框架PO设计模式
PO 的核心要素:
在 PO 模式中抽象封装成一个BasePage 类,该基累应该拥有一个只实现 webdriver 实例的属性.
每个一个 page 都继承 BasePage,通过 driver 来管理本 page 中元素,讲 page 中的操作封装成一个个的方法.
TestCase 继承 unittest.Testcase 类,并且依赖 page 类,从而实现相应的测试步骤.
根据什么定位元素
1.根据元素的name属性进行定位(find_element_by_name())
webDriver.findElement(By.name(“phrase”));
2.根据文本链接进行定位(find_element_by_link_text())
webDriver.findElement(By.linkText(“发表”));
3.根据元素的id属性进行定位(find_element_by_id())
webDriver.findElement(By.id(“title”));
4.根据元素的class属性进行定位(find_element_by_class_name())
webDriver.findElement(By.className(“note-editable”));
5.根据css定位元素,css属性定位能够灵活地选择控件的任意属性。(find_element_by_css_selector())
webDriver.findElement(By.cssSelector(“li:nth-child(2)”)).click();
6.根据元素的标签名进行定位(find_element_by_tag_name())
webDriver.findElement(By.tagName(“phrase”));
7.根据xpath的绝对路径或者相对路径进行定位,这种定位方式最精准,最可靠。(xpath可定位任何元素)(find_element_by_xpath())
webdriver.findElement(By.xpath(“//img[@alt=‘div1-img1’]”));
例子
5.1 下拉框定位的例子
from selenium import webdriver
from selenium.webdriver.support.select import Select #首先必须要导入select包才能定位
from time import sleep
dr = webdriver.Chrome()
dr.get(r’D:\下拉框.html’)
#先定位到水果框,用变量selectfruit
selectFruit = dr.find_element_by_id(‘fruit’)
#再定位到具体的元素,菠萝
Select(selectFruit).select_by_visible_text(‘菠萝’)
5.2 send_keys()自动化上传
AI写代码
1
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get(r’file:///e:/CnblogCode/upload_file.html’)
upload_element = driver.find_element_by_xpath(‘//*[@id=“upload_file”]’)
time.sleep(3) # 为了看效果
upload_element.send_keys(r’E:\CnblogCode\upload_file.html’)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。