天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
文章目录
- 1. 填充内容`sendKeys`
- 2. 清空内容`clear`
- 3. 提交内容`submit`
- 4. 获取元素大小`getSize`
- 5. 获取元素对应文本内容`getText`
- 6. 获取元素属性`getAttribute`
- 7. 元素是否为用户可见`isDisplayed`
- 8. 点击按钮`click`
- 9. 完整代码
执行程序前请先配置驱动:
关于Java selenium使用前浏览器驱动的下载和环境变量的配置
关于Selenium自动化测试工具的Java实现详情请参考文章:
如何查看页面对应的Selenium定位参数
Java实现 selenium Web自动化测试(简单篇)
Java实现 selenium Web自动化测试(详细篇)
1. 填充内容sendKeys
以百度首页搜索框为例,先定位输入框元素,然后输入文本李白诗三百
//sendKeys-在输入框中填充文本搜索内容
WebElement sendKeys_input = webDriver.findElement(By.id("kw"));
sendKeys_input.sendKeys("李白诗三百");
2. 清空内容clear
清空填充的文本内容
//clear-清空输入框中的文本内容
WebElement clear_input = webDriver.findElement(By.id("kw"));
clear_input.clear();
3. 提交内容submit
提交submit相当于按回车按钮
先填充再提交
//submit-提交文本内容进行搜索,相当于回车按钮
WebElement submit_input = webDriver.findElement(By.id("kw"));
submit_input.sendKeys("唐诗三百");
submit_input.submit();
4. 获取元素大小getSize
获取元素对应位置的长度和宽度即dimension size
如获取百度首页搜索框的尺寸
//getSize-获取当前定位元素的大小,如返回输入框的大小
WebElement getSize_input = webDriver.findElement(By.id("kw"));
Dimension size = getSize_input.getSize();
System.out.println("\n\n\n\n\n\n\n\n dimension size "+size+"\n\n\n\n\n\n\n\n");
控制台输出为(503, 38)
截图如下
5. 获取元素对应文本内容getText
根据元素位置获取其对应的文本内容,这里以百度首页搜索唐诗三百
的结果页面,定位标题文本获取对应内容
//getText-获取当前元素对应的文本内容,input对应的文本内容为空
WebElement getText_input = webDriver.findElement(By.xpath("//div/div/div/h3"));
String text = getText_input.getText();
System.out.println("\n\n\n\n\n\n\n\n text "+text+"\n\n\n\n\n\n\n\n");
控制台输出为:唐诗三百 - 古诗文
截图如下
6. 获取元素属性getAttribute
根据元素属性名获取对应的值,以百度首页输入框为例,获取属性名name对应的属性值
//getAttribute-获取元素属性值
WebElement getAttribute_input = webDriver.findElement(By.id("kw"));
//括号中填写元素标签中的属性名,会根据此属性名获取其对应的属性值,以input标签元素中的属性名name为例获取其对应的值
String name = getAttribute_input.getAttribute("name");
System.out.println("\n\n\n\n\n\n\n\n name "+name+"\n\n\n\n\n\n\n\n");
控制台输出name对应的属性值内容为wd
截图
7. 元素是否为用户可见isDisplayed
返回值为布尔值,用来确认该元素的内容是否对用户可见,以百度首页输入框为例
//isDisplayed-获取该元素是否为用户可见,返回结果为布尔值
WebElement isDisplayed_input = webDriver.findElement(By.id("kw"));
boolean displayed = isDisplayed_input.isDisplayed();
System.out.println("\n\n\n\n\n\n\n\n displayed "+displayed+"\n\n\n\n\n\n\n\n");
输出结果为true,表示对用户可见
截图如下
8. 点击按钮click
定位元素点击,这里以百度首页的左上角文本链接中的地图为例,点击跳转到地图网页
//click-点击对象,可以点击文本链接,可以点击按钮,可以点击复选框等,
// 这里是接着前面的操作在百度搜索框中输入了唐诗三百后的界面中找到文本链接-地图,再点击进行测试
WebElement click_news = webDriver.findElement(By.linkText("地图"));
click_news.click();
9. 完整代码
ObjectControlTest.java
package com.libai.test.selenium.chrome;
import org.openqa.selenium.By;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
/**
* @ClassDescription: 模拟浏览器中对象操作方法的测试
* @JdkVersion: 1.8
* @Author: 李白
* @Created: 2024/5/8 11:20
*/
public class ObjectControlTest {
public static void main(String[] args) throws InterruptedException {
//指定驱动,第一个参数为驱动名称,不同浏览器的参数名称不一样,请根据浏览器查询到对应的浏览器参数名,第二个参数为驱动文件路径,即驱动完整文件路径
System.setProperty("webdriver.chrome.driver", "D:\\JavaSoftWares\\Google\\driver\\chromedriver-win64\\chromedriver.exe");
// 谷歌驱动
ChromeOptions cops = new ChromeOptions();
// 允许所有请求
cops.addArguments("--remote-allow-origins=*");
//默认设置开始打开网页时窗口最大化
cops.addArguments("--start-maximized");
//创建驱动对象
WebDriver webDriver = new ChromeDriver(cops);
// 启动需要打开的网页
webDriver.get("https://www.baidu.com");
//指定窗口大小--最大化
// webDriver.manage().window().maximize();
//操作对象的方法如下:click sendKeys clear submit text getSize getText getAttribute isDisplayed
//sendKeys-在输入框中填充文本搜索内容
WebElement sendKeys_input = webDriver.findElement(By.id("kw"));
sendKeys_input.sendKeys("李白诗三百");
//等待三秒
Thread.sleep(3000);
//clear-清空输入框中的文本内容
WebElement clear_input = webDriver.findElement(By.id("kw"));
clear_input.clear();
//等待三秒
Thread.sleep(3000);
//submit-提交文本内容进行搜索,相当于回车按钮
WebElement submit_input = webDriver.findElement(By.id("kw"));
submit_input.sendKeys("唐诗三百");
submit_input.submit();
//等待三秒
Thread.sleep(3000);
//getSize-获取当前定位元素的大小,如返回输入框的大小
WebElement getSize_input = webDriver.findElement(By.id("kw"));
Dimension size = getSize_input.getSize();
System.out.println("\n\n\n\n\n\n\n\n dimension size "+size+"\n\n\n\n\n\n\n\n");
//等待三秒
Thread.sleep(3000);
//getText-获取当前元素对应的文本内容,input对应的文本内容为空
// WebElement getText_input = webDriver.findElement(By.id("kw"));
WebElement getText_input = webDriver.findElement(By.xpath("//div/div/div/h3"));
String text = getText_input.getText();
System.out.println("\n\n\n\n\n\n\n\n text "+text+"\n\n\n\n\n\n\n\n");
//等待三秒
Thread.sleep(3000);
//getAttribute-获取元素属性值
WebElement getAttribute_input = webDriver.findElement(By.id("kw"));
//括号中填写元素标签中的属性名,会根据此属性名获取其对应的属性值,以input标签元素中的属性名name为例获取其对应的值
String name = getAttribute_input.getAttribute("name");
System.out.println("\n\n\n\n\n\n\n\n name "+name+"\n\n\n\n\n\n\n\n");
//等待三秒
Thread.sleep(3000);
//isDisplayed-获取该元素是否为用户可见,返回结果为布尔值
WebElement isDisplayed_input = webDriver.findElement(By.id("kw"));
boolean displayed = isDisplayed_input.isDisplayed();
System.out.println("\n\n\n\n\n\n\n\n displayed "+displayed+"\n\n\n\n\n\n\n\n");
//等待三秒
Thread.sleep(3000);
String currentUrl = webDriver.getCurrentUrl();
System.out.println("\n\n\n\n\n\n\n\n currentUrl "+currentUrl+"\n\n\n\n\n\n\n\n");
//click-点击对象,可以点击文本链接,可以点击按钮,可以点击复选框等,
// 这里是接着前面的操作在百度搜索框中输入了唐诗三百后的界面中找到文本链接-地图,再点击进行测试
WebElement click_news = webDriver.findElement(By.linkText("地图"));
click_news.click();
//等待5秒
Thread.sleep(5000);
//关闭资源(关闭浏览器)
webDriver.close();
// webDriver.quit();
}
}
感谢阅读,祝君暴富!