Java+Selenium学习笔记
侧边栏壁纸
  • 累计撰写 190 篇文章
  • 累计收到 1,269 条评论

Java+Selenium学习笔记

萧瑟
2023-04-23 / 0 评论 / 150 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年04月23日,已超过590天没有更新,若内容或图片失效,请留言反馈。

Selenium介绍

Selenium是一个用于Web应用程序自动化测试工具,背后有google 维护源代码,支持全部主流浏览器,支持主流的编程语言,包括:java,Python,C#,PHP,Ruby等

特点

  1. 开源、免费
  2. 多浏览器支持:FireFox、Chrome、IE、Opera、Edge;
  3. 多平台支持:Linux、Windows、MAC;
  4. 多语言支持:Java、Python、Ruby、C#、JavaScript、C++;
  5. 对Web页面有良好的支持;
  6. 简单(API 简单)、灵活(用开发语言驱动);
  7. 支持分布式测试用例执行。

chromeDriver驱动下载:http://chromedriver.storage.googleapis.com/index.html

下载的驱动要和自己安装的谷歌浏览器版本相互匹配

项目依赖包

最新版可以在mvnrepository查找,链接如下

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>${selenium.version
}</version>
</dependency>

使用手册

1 导航

1.1 打开网页

driver.get("https://www.baidu.com")
driver.navigate.to("https://www.baidu.com")
// 区别:get是有逻辑的跳转,而navigate.to是直接跳转到该页面,没有任何逻辑
// 参考:https://blog.csdn.net/gaokao2011/article/details/17169969

1.2 获取当前页面url

//返回的是字符串
String url = driver.getCurrentUrl();   
//https://www.baidu.com
System.out.println(url);     

1.3 返回上一页

driver.navigate.back();

1.4 前进下一页面

driver.navigate.forward();

1.5 刷新当前页面

driver.navigate.refresh();

1.6 获取当前页面的title

String title = driver.getTitle();  //返回字符串
System.out.println(title);   //百度一下,你就知道

2 窗口、Tabs

当driver打开一个新窗口时,若想操作新窗口上的元素,则需要将driver切换到新窗口

2.1 获取当前窗口句柄

//返回字符串
String currentWindowHandle = driver.getWindowHandle();

2.2 获取所有窗口句柄

//返回字符串集合
Set<String> allWindowHandles = driver.getWindowHandles();  

2.3 切换到新窗口

//newHandle为要切换的新窗口的句柄
driver.switchTo().window(newHandle);  

2.4 关闭窗口或tabs

driver.close();

2.5 会话结束时退出浏览器

driver.quit();

3 Frames and IFrames

当页面上有iframe和frame元素时,若想操作iframe和frame下的html元素,则需要切换driver

3.1 切换到指定iframe或frame

WebElement element_iframe = driver.findElement(By.id("iframe1"));
driver.switchTo().frame(element_iframe);

3.2 切换回父页面

driver.switchTo().defaultContent();

4 window管理

4.1 获取窗口大小

int width = driver.manage().window().getSize().getWidth();
int height = driver.manage().window().getSize().getHeight();

Dimension size = driver.manage().window().getSize();
int width = size.getWidth();
int height = size.getHeight();

4.2 设置窗口大小

driver.manage().window().setSize(new Dimension(1024,768));

4.3 获取窗口位置

int x = driver.manage().window().getPosition().getX();
int y = driver.manage().window().getPosition().getY();

Point position = driver.manage().window().getPosition();
int x = position.getX();
int y = position.getY();

5 设置窗口

5.1 设置窗口位置

driver.manage().window().setPositon(new Point(0,0));

5.2 最大化窗口

driver.manage().window().maximize();

5.3 全屏窗口

driver.manage().window().fullscreen();

6 定位

driver.find 或 element.find
findElement(By.id("XXX"))
findElement(By.name("XXX"))
findElement(By.className("XXX"))
findElement(By.cssSelector("XXX"))
findElement(By.linkText("XXX"))
findElement(By.partialLinkText("XXX"))
findElement(By.tagName("XXX"))
findElement(By.xpath("XXX"))

findElements(By.id("XXX"))
findElements(By.name("XXX"))
findElements(By.className("XXX"))
findElements(By.cssSelector("XXX"))
findElements(By.linkText("XXX"))
findElements(By.partialLinkText("XXX"))
findElements(By.tagName("XXX"))
findElements(By.xpath("XXX"))

7 执行js脚本

//声明一个js执行器
JavascriptExecutor js = (JavascriptExecutor) driver;  
js.executeScript("alert(123)");

评论 (0)

取消