Java+Selenium 学习笔记
侧边栏壁纸
  • 累计撰写 51 篇文章
  • 累计收到 32 条评论
Katelya - Blog

Java+Selenium 学习笔记

katelya
2024-08-11 / 1 评论 / 13 阅读 / 正在检测是否收录...

Selenium 介绍

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

特点

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

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

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

Test

项目依赖包

最新版可以在 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)");
本文共 413 个字数,平均阅读时长 ≈ 2分钟
1

打赏

海报

正在生成.....

评论 (1)

语录
取消
  1. 头像
    11
    ·Android · Google Chrome
    沙发

    https://i.y.qq.com/n2/m/share/details/taoge.html?platform=11&appshare=android_qq&appversion=13100008&hosteuin=owC5oin5Neni&id=9348132206&ADTAG=qfshare

    回复 删除 垃圾