Selenium的测试脚本可以使用多种编程语言书写,Java、C#、JavaScript、python、Ruby都可以书写。本文将以python为例,之所以选用python,因为python简单易学、又功能强大、还有丰富的扩展库供我们使用,现在测试招聘中python出现的概率非常高。
第一个测试脚本,以百度为例:
# -*- coding:utf-8 -*- from selenium import webdriver # 打开百度 driver = webdriver.Firefox() driver.get("https://www.baidu.com/") # 输入Selenium并点击'百度一下'按钮 driver.find_element_by_id("kw").send_keys("selenium") driver.find_element_by_id("su").click() # 关闭Firefox driver.close() driver.quit()关于元素的定位我使用的是Firebug、Firepath、Firefinder三个工具,这三个Firefox的插件对于我们的Selenium的元素定位很有帮助。
下面对脚本进行解析一下:
# -*- coding:utf-8 -*-用于指定python文件的编码:Python2中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。解决方法为只要在文件开头加入# -*- coding:utf-8 -*-、# coding=utf-8或者# coding:utf-8 就行了。
from selenium import webdriver导入Selenium的webdriver的包,这样才可以使用其中的方法。
driver = webdriver.Firefox()指定我们需要哪一个浏览器来模拟操作,或者可以叫做初始化Firefox driver;当然也可以指定为IE、Chrome等。
driver.find_element_by_id("kw").send_keys("selenium")定位到百度的文本输入框并输入“selenium”字符。 <input id="kw" class="s_ipt" autocomplete="off" maxlength="255" value="" name="wd"> 一个控件会有多个属性(id、name、class name、link text等等),可以通过调用不同的方法通过不同的属性进行元素定位。send_keys()向当前的元素中输入字符。
driver.find_element_by_id("su").click()通过ID定位到“百度一下”的按钮,并点击(click()方法)
driver.close() driver.quit()在脚本完成之后需要关闭打开浏览器、退出当前的driver。close()方法是关闭当前的窗口、quit()是退出driver并关闭所有关联的窗口。
这就是一个简单的使用selenium的自动化测试脚本,其实复杂的脚本也是在这个思想的基础上完成的:启动driver打开browser -> 定位到需要操作的element -> 执行操作 -> 验证操作 -> 关闭driver和浏览器。