一、
基于 Java 语言的 Selenium 环境搭建
安装 jre+idea,创建 Java 项目
安装 selenium:在 idea中导入如下包
selenium-java-3.9.1.zip
selenium-server-standalone-3.9.1.jar
准备浏览器驱动器
无需安装,复制到某个位置(此位置需要写到代码中)
IEDriverServer、chromedriver(google)、geckodriver(Firefox)
webdriver.Ie()、.Chrome()、.Firefox()
使用 Selenium IDE
断网安装 Firefox57
选择自定义安装(不要选择默认安装),取消勾选"安装维护服务"
安装完成后,工具—选项—常规—firefox 更新:勾选“不检查更新”即可,
去掉勾选“自动更新搜索引擎”
联网安装 SeleniumIDE
设置—附加组件—扩展—搜索 SeleniumIDE,然后安装
二、
编写测试脚本
1 指定浏览器驱动,打开浏览器
1.1 IE
System.setProperty("webdriver.ie.driver", "C:\\\\...\\\\IEDriverServer.exe");
WebDriver driver = new InternetExplorerDriver();
1.2 Firefox
需事先安装对应驱动版本的浏览器
System.setProperty("webdriver.gecko.driver", "C:/…/geckodriver.exe");
System.setProperty("webdriver.firefox.bin","E:/Mozilla Firefox/firefox.exe");
WebDriver driver = new FirefoxDriver();
1.3 Google
System.setProperty("webdriver.chrome.driver", "C:\\\\...\\\\chromedriver.exe");
WebDriver driver = new ChromeDriver();2
关闭浏览器窗口
driver.close();
关闭页面
driver.quit();
关闭页面
关闭相关进程
3
设置等待时间
操作太快容易导致对象控件不出现,从而失败。
隐式等待
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
隐式等待采用全部设置,所有的 findElement 方法都会隐式等待 1s
上述方法针对执行脚本的所有对象,等待 3 秒。
Thread.sleep(3000);
//ms
只需放在需要等待的位置。
打开网址
driver.get("http://localhost:1080/webtours");
driver.getTitle()
获得浏览器网页标题(字符串)
5
识别页面元素
5.1 driver.findElement(By.属性)
查询符合属性要求的第一个对象。
适用于文本框、密码框、命令按钮、单选按钮。
属性
name("值")
tagName("标签名")
标签即<>内的关键字。
xpath("//标记名\[@属性名\='属性值'\]")
id
className
CSS class 属性的值
linkText
和之间的内容
partialLinkText
和之间的部分文本值