近日自动化测试在项目中开始推行,于是翻看起来,前期有篇(自动化测试之selenium小试牛刀)介绍Python环境下如何自动化测试,本期主要介绍Java环境下的自动化测试过程。
1)浏览器驱动
驱动下载:可在官网 下载(selenium驱动官网)或者是直接在 googleapis 下载谷歌浏览器驱动(chromedriver)
2)Java 包
jar 下载地址:selenium-release
从 googleapis 下载谷歌浏览器驱动如下图所示。注意:驱动与实际浏览器版本要匹配。本次选择 111.0.5563.41 版本
Java包从selenium-release 下载,本次选择版本为 selenium-java-3.9.0 和 selenium-server-standalone-3.9.0。
新建项目 Java Project,在项目右键 -> Build Path -> Configure Build Path。
弹出窗体,选择Libraries,Add External JARs,将下载的 selenium-java-3.9.0 下的libs文件夹中内容选中。
同样将 selenium-server-standalone 包导入,否则无法驱动谷歌浏览器。
程序逻辑:
加载浏览器驱动,去调用网站,如百度。
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class seleniumTest {
public static void main(String [] args){// 读取驱动文件System.setProperty("webdriver.chrome.driver","D:/software/learn/chromedriver_win32/chromedriver.exe");// 加载驱动WebDriver driver = new ChromeDriver();driver.get("http://www.baidu.com");}
}
右键- 运行 Run As -> Java Application ,运行成功则弹出百度首页,执行结果如下所示。
selenium 常用页面定位方式如下:
1)id 定位
2)name 名字定位
3)className 类名定位、
4)linkText 链接定位,根据页面的链接进行点击、跳转等操作。
5)partialLinkText 部分链接定位
6)cssSelector css定位,#元素
7)xpath 定位
8)tag 定位
格式:driver.findElement(By.id(“id名”)).sendKeys(“赋值的内容”);
以美团登录页为例,测试各种定位的使用
public static void main(String [] args){System.setProperty("webdriver.chrome.driver","D:/software/learn/chromedriver_win32/chromedriver.exe");WebDriver driver = new ChromeDriver();// driver.get("http://www.baidu.com");// 美团登录地址driver.get("https://passport.meituan.com/account/unitivelogin");// id 定位driver.findElement(By.id("login-email")).sendKeys("coder");// name 定位driver.findElement(By.name("email")).sendKeys("coder-name");// className定位,可取部分属性进行定位driver.findElement(By.className("f-text")).sendKeys("coder-className");// linkText 超链接,可点击跳转driver.findElement(By.linkText("免费注册")).click();// partialLinkText 部分超链接driver.findElement(By.partialLinkText("注册")).click();// css 定位driver.findElement(By.cssSelector("#login-email")).sendKeys("coder-css");// tag 定位driver.findElement(By.tagName("body")).getAttribute("class");// xpath 定位driver.findElement(By.xpath("//*[@id=\"login-email\"]")).sendKeys("coder-xpath");// xpath 定位-有空格元素driver.findElement(By.xpath("//*[@class=\"f-text phone-input\"]")).sendKeys("coder-space");}
id 定位方式进行页面数据填充,实现效果如下所示。
以上就是 Java + selenium 进行简单自动化测试的过程。
上一篇:新华财经早报:5月30日
下一篇:长镜头|让阅读成为成长的光