java中Selenium简单使⽤
前⾔
Selenium 是⼀个⽤于Web应⽤程序测试的⼯具。Selenium测试直接运⾏在浏览器中,就像真正的⽤户在操作⼀样。
环境配置
下载对应浏览器驱动
这⾥使⽤Chrome浏览器,根据⾃⼰当前安装Chrome的版本来选择,,放到⼀个指定⽬录下,如 D:\引⼊Selenium的maven依赖
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.5</version>
</dependency>
代码测试
这⾥我们使⽤Selenium完成⼀个⼩功能
打开百度,搜索"selenium 中⽂官⽹",新开⼀个窗⼝打开第⼀个搜索的结果。
代码实现如下
import java.util.List;
import urrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class Client {
public static void main(String[] args) throws InterruptedException {
//配置浏览器驱动地址
System.setProperty("webdriver.chrome.driver",
"D:\\Temp\\");
//打开Chrome浏览器
WebDriver webDriver = new ChromeDriver();
TimeUnit.SECONDS.sleep(5);
//打开百度⽹站
<("www.baidu");
selenium怎么使用TimeUnit.SECONDS.sleep(2);
//输⼊框输⼊搜索关键词 selenium 中⽂官⽹
webDriver.findElement(By.id("kw")).sendKeys("selenium 中⽂官⽹");
TimeUnit.SECONDS.sleep(2);
//点击百度⼀下按钮
webDriver.findElement(By.id("su")).submit();
TimeUnit.SECONDS.sleep(2);
//查询所有搜索的结果
List<WebElement> resultElements = webDriver.findElements(By.className("result"));
if (!resultElements.isEmpty()) {
//到第⼀条结果的第⼀个链接
List<WebElement> aTagElements = (0).findElements(By.tagName("a"));
if (!aTagElements.isEmpty()) {
//新开⼀个窗⼝打开此链接
String href = (0).getAttribute("href");
System.out.println(href);
((JavascriptExecutor) webDriver).executeScript(String.format("window.open('%s')", href));
}
}
TimeUnit.SECONDS.sleep(10);
//关闭浏览器
webDriver.quit();
}
}
这⾥需要⽤到⼀些HTML中定位元素的知识,如根据Id,class,标签名称定位元素等。执⾏效果如下
基本原理
Selenium ⾃⼰定义了⼀套协议 The WebDriver Wire Protoco,⼏乎可以操作浏览器做任何事情,包括打开、关闭、最⼤化、最⼩化、元素定位、元素点击、上传⽂件等,每个浏览器都实现了这套协议,就是WebDriver驱动。java向WebDriver发送http请求,WebDriver调⽤对应浏览器的本地API,并将返回结果封装成json返回给java。
参考
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论