WEB自动化(Python+selenium)的API
在做Web自动化过程中,汇总了Python+selenium的API相关方法,给公司里的同事做了第二次培训,分享给大家。
WEB自动化测试培训
课程目的
一、Webdriver API 的使用
课程内容
1 控制浏览器
Selenium 主要提供的是操作页面上各种元素的方法,但它也提供了操作浏览器本身的方法,比如浏览器的大小以及浏览器后退、前进按钮等。
1.1 控制浏览器窗口大小
在不同的浏览器大小下访问测试站点,对测试页面截图并保存,然后观察或使用图像比对工具对被测页面的前端样式进行评测。比如可以将浏览器设置成移动端大小(480x800),然后访问移动站点,对其样式进行评估;WebDriver 提供了set_window_size() 方法来设置浏览器的大小。
例子:
#coding=utf-8
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://192.168.30.180/Uet-Platform/")
#参数数字为像素点
print "设置浏览器宽480、高800 显示"
driver.set_window_size(480, 800)
driver.quit()
在PC 端运行执行自动化测试脚本大多的情况下是希望浏览器在全屏幕模式下执行,那么可以使用maximize_window()方法,其用法与set_window_size() 相同,但它不需要传参。
1.2 控制浏览器后退和前进
在使用浏览器浏览网页的时候,浏览器提供了后退和前进按钮,可以方便的对浏览过的网页之间切换,那么WebDriver 也提供了对应的back()和forward()方法来模拟后退和前进按钮。下面通过例子来演示这两个方法的使用。
例子:
#coding=utf-8
from selenium import webdriver
driver = webdriver.Firefox()
#访问百度首页
first_url= 'http://www.baidu.com'
print "now access %s" %(first_url)
driver.get(first_url)
#访问新闻页面
second_url='http://news.baidu.com'
print "now access %s" %(second_url)
driver.get(second_url)
#返回(后退)到百度首页
print "back to %s "%(first_url)
driver.back()
#前进到新闻页
print "forward to %s"%(second_url)
driver.forward()
driver.quit()
输出:
now access http://www.baidu.com
now access http://news.baidu.com
back to http://www.baidu.com
forward to http://news.baidu.com
1.3 模拟刷新浏览器
有时候需要手动的刷新(F5)的刷新页面
…
driver.refresh() #刷新当前页面
…
2 元素操作
2.1 常用的元素操作
1、clear() 清除文本,如果是一个文件输入框
2、send_keys(*value) 在元素上模拟按键输入
3、click() 单击元素
例子:
#coding=utf-8
from selenium import webdriver
import unittest, time, re
driver = webdriver.Firefox()
driver.implicitly_wait(30)
base_url ="http://192.168.30.180/Uet-Platform/masterLogin.action" #30测试环境
driver.get(base_url)
driver.find_element_by_id("txtUserName").clear()
driver.find_element_by_id("txtUserName").send_keys("13554797004")
driver.find_element_by_id("txtPassword").clear()
driver.find_element_by_id("txtPassword").send_keys("123123")
driver.find_element_by_link_text(u"登录").click()
driver.switch_to_frame("lj_left")
driver.find_element_by_xpath("//div[@id='left']/table/tbody/tr[6]/td").click()
driver.find_element_by_link_text(u"用户单位管理").click()
……
说明:
clear()方法用于清除文本输入框中的内容,例如登录框内一般默认会有“账号”“密码”等提示信息用于引导用户输入正确的数据,如果直接向输入框中输入数据,可能会与输入框中的提示信息拼接,本来用户输入为“username”,结果与提示信息拼接为“帐号username”,从而造成输入信息的错误;这个时候
可以先使用clear()方法清除输入框内的提示信息再进行输入。
send_keys()方法模拟键盘输入向输入框里输入内容。如上面的例子中通过这个方法向用户名和密码框中输入用户名和密码。
click()方法可以用来单击一个按钮,前提是它是可以被点击元素,它与send_keys()方法是web 页面操作中最常用到的两个方法。其实click()方法不仅仅用于点击一个按钮,还可以单击任何可以点击文字/图片连接、复选框、单选框、甚至是下拉框等。
2.2 WebElement 接口常用方法
1、submit()
submit()方法用于提交表单,这里特别用于没提交按钮的情况,例如搜索框输入关键字之后的“回车”操作,那么就可以通过submit()来提交搜索框的内容。
例子:
#coding=utf-8
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://www.youdao.com")
driver.find_element_by_id('query').send_keys('hello')
#提交输入框的内容
driver.find_element_by_id('query').submit()
driver.quit()
有些时候submit()可以与click()方法互换来使用,submit()同样可以