本文主要是介绍Selenium定位一组元素(及获取元素相关参数如元素数量、元素文本、元素属性),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
文章目录
- 1. 定位方法`findElements`
- 2. 获取元素数量`getSize`
- 3. 获取元素的文本内容`getText`
- 4. 获取元素的属性值`getAttribute`
- 5. 完整代码
执行程序前请先配置驱动:
关于Java selenium使用前浏览器驱动的下载和环境变量的配置
关于Selenium自动化测试工具的Java实现详情请参考文章:
如何查看页面对应的Selenium定位参数
Java实现 selenium Web自动化测试(简单篇)
Java实现 selenium Web自动化测试(详细篇)
定位元素使用的是findElement()方法,定位一组元素是方法名后加s,即findElements()
1. 定位方法findElements
该定位方法是基于百度搜索界面搜索李白后得到的网页进行元素定位的,可参考最后的完整代码
//在搜索结果界面,根据xpath来定位该页面的一组元素List<WebElement> elements = webDriver.findElements(By.xpath("//div/div/h3"));
2. 获取元素数量getSize
findElements()方法返回的是一组元素列表,可通过返回的列表对象调用getSize获取元素个数
//打印该组元素数量System.out.println("元素数量:"+elements.size());
3. 获取元素的文本内容getText
通过取出元素列表中的单个元素,通过getText获取元素对应的文本内容
//元素的文本内容System.out.println("元素内容:"+elements.get(0).getText());
4. 获取元素的属性值getAttribute
根据元素获取元素对应属性名的属性值
//获取第一个元素的class属性值String className = elements.get(0).getAttribute("class");System.out.println("第一个元素的className属性值为:"+className);
5. 完整代码
LocateElementListTest.java
package com.libai.test.selenium.chrome;import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;import java.util.List;/*** @ClassDescription: 定位一组元素* https://www.selenium.dev/documentation/webdriver/elements/locators/* @JdkVersion: 1.8* @Author: 李白* @Created: 2024/5/8 10:16*/
public class LocateElementListTest {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();//定位页面一组元素的方法,使用加s的定位方法findElements()=======================================================================//先定位百度搜索框WebElement kw = webDriver.findElement(By.id("kw"));//输入李白kw.sendKeys("李白");//提交搜索kw.submit();Thread.sleep(3000);//在搜索结果界面,根据xpath来定位该页面的一组元素List<WebElement> elements = webDriver.findElements(By.xpath("//div/div/h3"));//打印该组元素数量System.out.println("元素数量:"+elements.size());//遍历每个元素的文本内容for (WebElement e: elements) {System.out.println("元素内容:"+e.getText());}//获取第一个元素WebElement n = elements.get(0);//打印第一个元素对应的文本内容System.out.println("第1个元素内容:"+n.getText());//获取最后一个元素WebElement n2 = elements.get(elements.size()-1);//打印最后一个元素对应的文本内容System.out.println("最后一一个元素内容:"+n2.getText());//获取第一个元素的class属性值String className = elements.get(0).getAttribute("class");System.out.println("第一个元素的className属性值为:"+className);//等待5秒Thread.sleep(5000);//关闭资源(关闭浏览器)
// webDriver.close();webDriver.quit();}}
感谢阅读,祝君暴富!
这篇关于Selenium定位一组元素(及获取元素相关参数如元素数量、元素文本、元素属性)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!