IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Selenium-java基本使用归纳总结 -> 正文阅读

[开发测试]Selenium-java基本使用归纳总结

Selenium-java基本使用归纳总结

环境安装

maven方式导入jar包

        <!-- selenium-java -->
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.4.0</version>
        </dependency>

1.浏览器驱动

WebDriver driver = new ChromeDriver();//Chrome浏览器
 
WebDriver driver = new FirefoxDriver();//Firefox浏览器
 
WebDriver driver = new EdgeDriver();//Edge浏览器
 
WebDriver driver = new InternetExplorerDriver();//IE浏览器
 
WebDriver driver = new OperaDriver();//Opera浏览器

2.元素定位

1).8种定位方法:id、name、class name、 tag name 、link text 、partial link text 、xpath、 css selector。对应方法如下:

findElement(By.id());
findElement(By.name());
findElement(By.className());
findElement(By.tagName());
findElement(By.linkText());
findElement(By.partialLinkText());
findElement(By.xpath());
findElement(By.cssSelector());

2).用法:

前四种标签使用较为简单,class name、 tag name 使用,如果有多个相同元素,则默认返回第一个元素。以下解释后四种。

以谷歌和https://www.baidu.com/为例

<a href="https://www.hao123.com?src=from_pc" target="_blank" class="mnav c-font-normal c-color-t">hao123</a>

通过link text(精准匹配超链接)定位:

driver.findElement(By.linkText("hao123");

通过partialLink text(使用精准或模糊匹配,如果有一个值,默认返回第一个值)定位:

driver.findElement(By.partialLinkText("hao")
driver.findElement(By.partialLinkText("123")

通过xpath定位:(我使用该方法一般使用浏览器元素选择功能复制xpath,通过选择器找到需要定位的元素,右键复制元素即可,这样也不容易出错)
在这里插入图片描述
在这里插入图片描述

通过css selector定位步骤如上。

3.控制浏览器操作

1).控制浏览器窗口大小

maximize() 设置浏览器最大化

setSize() 设置浏览器宽高

driver.manage().window().maximize();
driver.manage().window().setSize(new Dimension(450, 600));

2).控制浏览器后退、前进

back() 模拟浏览器后退按钮

forward() 模拟浏览器前进按钮

//后退
driver.navigate().back();
//前进
driver.navigate().forward();

3).刷新页面 refresh()

driver.navigate().refresh();

4.常用方法

clear() 清除文本。

sendKeys(*value) 模拟按键输入

click() 单击元素

submit()提交表单

getSize() 返回元素的尺寸

getText() 获取元素的文本

getAttribute(name) 获得属性值

isDisplayed() 设置该元素是否用户可见

close() 关闭当前窗口,如果它是当前打开的最后一个窗口,则退出浏览器

quit() 退出此驱动程序,关闭所有相关窗口

//以上方法首先都是实例化浏览器驱动,请求指定页面,获取/定位到需要操作的元素,然后执行相关方法
//eg
WebDriver driver = new ChromeDriver();
driver.get("https://www.baidu.com/");
//获得百度输入框的尺寸
WebElement size = driver.findElement(By.id("kw"));
size.getSize()
//关闭浏览器
driver.close();

5.鼠标操作

contextClick() 右击

clickAndHold() 鼠标点击并控制

doubleClick() 双击

dragAndDrop() 拖动

release() 释放鼠标

perform() 执行所有Actions中存储的行为

//双击“百度一下”
Actions action = new Actions(driver);
action.doubleClick(driver.findElement(By.id("su"))).perform();

6.键盘操作

常用键盘操作全选、回车、删除、cv等等,对应操作有:

sendKeys(Keys.BACK_SPACE) 回格键(BackSpace)
sendKeys(Keys.SPACE) 空格键(Space)
sendKeys(Keys.TAB) 制表键(Tab)
sendKeys(Keys.ESCAPE) 回退键(Esc)
sendKeys(Keys.ENTER) 回车键(Enter)
sendKeys(Keys.CONTROL,‘a’) 全选(Ctrl+A)
sendKeys(Keys.CONTROL,‘c’) 复制(Ctrl+C)
sendKeys(Keys.CONTROL,‘x’) 剪切(Ctrl+X)
sendKeys(Keys.CONTROL,‘v’) 粘贴(Ctrl+V)
sendKeys(Keys.F1) 键盘 F1

//eg:删除键使用
WebDriver driver = new ChromeDriver();
driver.get("https://www.baidu.com");
WebElement input = driver.findElement(By.id("kw"));
input.sendKeys("hello");
input.sendKeys(Keys.BACK_SPACE);

7.定位一组元素

针对第二部分描述,只需要在原来加一个s就可以获取一个List列表

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

8.表单和窗口切换

1).表单切换。frame/iframe 表单嵌套页面需要通过 switchTo().frame()方法切换,frame()里传递的参数为定位frame的WebElement。

2).窗口切换。需要获取窗口权柄然后切换页面。

9.下拉框选择

Select类处理下拉框

//eg:获取下拉框元素,实例化Select类,然后通过selectByValue选择
WebElement element = driver.findElement(By.id("//select"));
Select sel = new Select(element);
sel.selectByValue("10");

10.警告框/alert处理

getText(): 返回 alert/confirm/prompt 中的文字信息。

accept(): 接受警告框。

dismiss(): 解散警告框。

sendKeys(keysToSend): 发送文本至警告框。

keysToSend: 将文本发送至警告框。

//eg:接受警告框。
driver.switchTo().alert().accept();

11.截图/滚动截图

Selenium提供了一种功能,称为TakeScreenShot界面,可用于拍摄可视区域的屏幕截图,该接口提供getScreenshotAs的方法,可捕获屏幕截图并将其存储在所需的位置

//eg:截图
File srcfile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
FileInputStream fileInputStream = new FileInputStream(srcfile);
//eg:滚动截图
PageSnapshot pageSnapshot = Shutterbug.shootPage(driver, Capture.FULL);
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(pageSnapshot.getBytes());

12.浏览器cookies

getCookies() 获得所有 cookie 信息。

getCookieNamed(String name) 返回字典的key为“name”的Cookie信息。

addCookie(cookie dict) 添加Cookie。“cookie_dict”指字典对象,必须有 name和value值。

deleteCookieNamed(String name) 删除Cookie 信息。 “name”是要删除的 cookie的名称; “optionsString” 是该Cookie的选项,目前支持的选项包括“路径” , “域” 。

deleteAllCookies() 删除所有 cookie 信息。

//eg
WebDriver driver = new ChromeDriver();
driver.get("https://www.baidu.com");
Cookie cookie1 = new Cookie("name", "cookieName");
Cookie cookie2 = new Cookie("value", "cookieValue");
driver.manage().addCookie(c1);
driver.manage().addCookie(c2);
//获取 cookie
Set<Cookie> cookie = driver.manage().getCookies();
//删除所有 cookie
driver.manage().deleteAllCookies();

13.调用JavaScript

WebDriver提供了executeScript()方法来执行JavaScript代码

//eg:
//实例化JavascriptExecutor
JavascriptExecutor driver_js = ((JavascriptExecutor) driver);
//编写js
String js="window.location.href = 'https://www.baidu.com/';";
//执行js代码
driver_js.executeScript(js);
[参考博客](https://blog.csdn.net/qq_22003641/article/details/79137327)


  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:55:28  更:2022-03-30 18:58:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 0:15:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码