Selenium +Python自动化测试

目录

  • 一、简单脚本的构成
  • 二、元素的定位
    • id定位
    • name定位
    • link text定位
    • Partial link text 定位
    • tag name 定位
    • XPath 定位
    • css_selector 定位
  • 三、操作测试对象
    • clear 清除对象的内容
    • submit 提交表单
    • text 获取元素文本
    • 添加等待
      • 智能等待
    • 打印tile及url
  • 四、浏览器的操作
    • 浏览器最大化
    • 设置浏览器宽、高
    • 操作浏览器的前进、后退
    • 控制浏览器滚动条
  • 五、键盘事件
    • 模拟ENTER键
    • 模拟tab键
    • 键盘组合键用法
  • 六、鼠标事件
    • 定位一组元素
    • 层级定位
    • 下拉框处理
    • alert框的处理
    • DIV对话框的处理
    • 上传文件操作


selenium相关介绍:

selenium工具集:selenium 1.0 、selenium 2.0
selenium 1.0包括:selenium IDE(自动化脚本录制工具)、selenium Grid(分布式测试)、selenium RC(selenium Sever、Client Libraries)
selenium 2.0在selenium 1.0的基础上加了一个webdriver(绕过了JavaScript的环境沙箱问题);
selenium工具:自动化测试工具、UI测试工具
selenium的特点:
轻量级,免费开源;
支持多语言,Java Python C#ruby JavaScript
支持多浏览器:Chrome Firefox edge Opera Safari lE
支持分布式: selenium Grid

WebDriver的原理:
Selenium +Python自动化测试_第1张图片
WebDriver就相当于司机,乘客就相当于脚本,司机会驱动汽车到达乘客想要去的地方,即WebDriver会驱动浏览器运行脚本。

一、简单脚本的构成

# coding = utf-8
from selenium import webdriver
import time
browser = webdriver.Firefox()
time.sleep(3)
browser.get("http://www.baidu.com")
time.sleep(3)
browser.find_element_by_id("kw").send_keys("selenium")
time.sleep(3)
browser.find_element_by_id("su").click()
browser.quit()
  1. 在脚本头部导入需要的包;
  2. 获取浏览器的驱动;
  3. 使用浏览器对需要测试的web系统进行操作;
  4. 测试完了,关闭浏览器。

二、元素的定位

对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象。一个对象就是一个人一样,他会有各种的特征(属性),如比我们可以通过一个人的身份证号,姓名,或者他住在哪个街道、楼层、门牌找到这个人。
那么一个对象也有类似的属性,我们可以通过这个属性找到这对象。

#退出并关闭窗口的每一个相关的驱动程序。
browser.quit()
#关闭当前窗口
browser.close()

id定位

定位页面元素的原则:元素的属性全局(全页面)唯一;
id全局唯一

以百度搜索框为例:

from selenium import webdriver
import time
driver = webdriver.Chrome()
url = "https://www.baidu.com/"
driver.get(url)
#用id来定位百度搜索框
driver.find_element_by_id("kw").send_keys("迪丽热巴")
driver.find_element_by_id("su").click()
time.sleep(3)
driver.quit()

name定位

以禅道登录页面为例:
name在此处全局唯一,所以可以定位到。
往往不用元素的class_name经常重叠,以后用name定位及class_name定位,应保证其全局唯一。

from selenium import webdriver
import time
driver = webdriver.Chrome()
url = "http://127.0.0.1:88/zentao/user-login-L3plbnRhby8=.html"
driver.get(url)
#用name来定位
driver.find_element_by_name("account").send_keys("admin")
driver.find_element_by_name("password").send_keys("Rui1234567")
time.sleep(6)
driver.find_element_by_id("submit").click()
time.sleep(6)
driver.quit()

link text定位

有时候不是一个输入框也不是一个按钮,而是一个文字链接,我们可以通过link
例:定位百度新闻:
Selenium +Python自动化测试_第2张图片

from selenium import webdriver
import time
driver = webdriver.Chrome()
url = "https://www.baidu.com/"
driver.get(url)
driver.find_element_by_link_text("新闻").click()
time.sleep(3)
driver.quit()

如果该页面有两个新闻链接,则不能按照上述操作。

Partial link text 定位

通过部分链接定位,这个有时候也会用到。拿上面的例子,我可以只用链接的一部分文字进行匹配

例:定位hao123
Selenium +Python自动化测试_第3张图片

from selenium import webdriver
import time
driver = webdriver.Chrome()
url = "https://www.baidu.com/"
driver.get(url)
driver.find_element_by_partial_link("123").click()
time.sleep

你可能感兴趣的:(测试,selenium,python,safari)