天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
文章目录
- 1. 定位方法
- 2. Java代码
执行程序前请先配置驱动:
关于Java selenium使用前浏览器驱动的下载和环境变量的配置
关于Selenium自动化测试工具的Java实现详情请参考文章:
如何查看页面对应的Selenium定位参数
Java实现 selenium Web自动化测试(简单篇)
Java实现 selenium Web自动化测试(详细篇)
1. 定位方法
想要模拟浏览器操作就需要先定位浏览器的输入框按钮等标签位置
selenium提供了8种定位方式,这8种定位方式在Java selenium中对应八种方法
selenium定位方式 | Java selenium定位方法 |
---|---|
id | findElement(By.id()) |
name | findElement(By.name()) |
class name | findElement(By.className()) |
tag name | findElement(By.tagName()) |
link text | findElement(By.linkText()) |
partialink text | findElement(By.partialLinkText()) |
xpath | findElement(By.xpath()) |
css selector | findElement(By.cssSelector()) |
接下来就是8种定位方式和定位后的操作
2. Java代码
完整代码
LocateElementTest.java
package com.libai.test.selenium.chrome;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
/**
* @ClassDescription: 元素定位:定位页面中的某个元素标签的位置
* @JdkVersion: 1.8
* @Author: 李白
* @Created: 2024/5/8 10:16
*/
public class LocateElementTest {
public static void main(String[] args) {
//指定驱动,第一个参数为驱动名称,不同浏览器的参数名称不一样,请根据浏览器查询到对应的浏览器参数名,第二个参数为驱动文件路径,即驱动完整文件路径
System.setProperty("webdriver.chrome.driver", "D:\\JavaSoftWares\\Google\\driver\\chromedriver-win64\\chromedriver.exe");
// 谷歌驱动
ChromeOptions cops = new ChromeOptions();
// 允许所有请求
cops.addArguments("--remote-allow-origins=*");
//创建驱动对象
WebDriver webDriver = new ChromeDriver(cops);
// 启动需要打开的网页
webDriver.get("https://www.baidu.com");
//指定窗口大小--最大化
webDriver.manage().window().maximize();
//定位页面元素的方法=======================================================================
//一、input标签元素定位====如我们现在有一个网页,输入框input部分的前端代码如下:
/*
<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
*/
//对input标签进行定位的方法如下
//1-通过id定位
// webDriver.findElement(By.id("kw"));
// //2-通过name定位
// webDriver.findElement(By.name("wd"));
// //3-通过class name定位
// webDriver.findElement(By.className("s_ipt"));
// //4-通过tag name定位----因无tag标签,暂未验证
// webDriver.findElement(By.tagName("input"));
// //5-通过xpath定位,该定位方法有很多种写法,常用的几种如下:
// webDriver.findElement(By.xpath("//*[@id='kw']"));
// webDriver.findElement(By.xpath("//*[@name='wd']"));
// webDriver.findElement(By.xpath("//input[@class='s_ipt']"));
// webDriver.findElement(By.xpath("//form[@id='form']/span/input"));
// webDriver.findElement(By.xpath("//input[@id='kw' and @name='wd']"));
// //6-通过css定位,同样有很多种方法,如下为几种常用方法:
// webDriver.findElement(By.cssSelector("#kw"));
// webDriver.findElement(By.cssSelector("[name=wd]"));
// webDriver.findElement(By.cssSelector(".s_ipt"));
// webDriver.findElement(By.cssSelector("form#form > span > input"));
//二、网页的文本链接元素定位=====如百度首页的文本链接代码如下
/*
<a href="http://news.baidu.com" target="_blank" class="mnav c-font-normal c-color-t">新闻</a>
<a href="https://www.hao123.com?src=from_pc_logon" target="_blank" class="mnav c-font-normal c-color-t">hao123</a>
*/
//对文本链接进行定位的方法如下
//7-通过link text定位,定位后使用click函数点击跳转到新闻页面
// webDriver.findElement(By.linkText("新闻")).click();
// webDriver.findElement(By.linkText("hao123")).click();
//8-通过partialLink text定位
// webDriver.findElement(By.partialLinkText("新闻"));
// webDriver.findElement(By.partialLinkText("hao"));
// webDriver.findElement(By.partialLinkText("hao123"));
//注意:以下两种定位方式的测试不能同时执行,执行一个需要将另一个注释掉
//通过定位找到input输入框的位置,并使用sendKeys进行文本内容填充到输入框
// webDriver.findElement(By.id("kw")).sendKeys("李白");
//通过定位找到新闻文本链接的位置,并使用click进行跳转到新闻页面,暂时无法解决关闭这个新开的新闻网页
webDriver.findElement(By.linkText("新闻")).click();
//等待5秒
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
//关闭资源(关闭浏览器)
webDriver.close();
}
}
感谢阅读,祝君暴富!