天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
文章目录
执行程序前请先配置驱动:
关于Java selenium使用前浏览器驱动的下载和环境变量的配置
关于Selenium自动化测试工具的Java实现详情请参考文章:
如何查看页面对应的Selenium定位参数
Java实现 selenium Web自动化测试(简单篇)
Java实现 selenium Web自动化测试(详细篇)
1. 定位方法
想要模拟浏览器操作就需要先定位浏览器的输入框按钮等标签位置
selenium提供了8种定位方式,这8种定位方式在Java selenium中对应八种方法
selenium定位方式Java selenium定位方法idfindElement(By.id())namefindElement(By.name())class namefindElement(By.className())tag namefindElement(By.tagName())link textfindElement(By.linkText())partialink textfindElement(By.partialLinkText())xpathfindElement(By.xpath())css selectorfindElement(By.cssSelector())
接下来就是8种定位方式和定位后的操作
2. Java代码
完整代码
LocateElementTest.java
packagecom.libai.test.selenium.chrome;importorg.openqa.selenium.By;importorg.openqa.selenium.WebDriver;importorg.openqa.selenium.chrome.ChromeDriver;importorg.openqa.selenium.chrome.ChromeOptions;/**
* @ClassDescription: 元素定位:定位页面中的某个元素标签的位置
* @JdkVersion: 1.8
* @Author: 李白
* @Created: 2024/5/8 10:16
*/publicclassLocateElementTest{publicstaticvoidmain(String[] args){//指定驱动,第一个参数为驱动名称,不同浏览器的参数名称不一样,请根据浏览器查询到对应的浏览器参数名,第二个参数为驱动文件路径,即驱动完整文件路径System.setProperty("webdriver.chrome.driver","D:\\JavaSoftWares\\Google\\driver\\chromedriver-win64\\chromedriver.exe");// 谷歌驱动ChromeOptions cops =newChromeOptions();// 允许所有请求
cops.addArguments("--remote-allow-origins=*");//创建驱动对象WebDriver webDriver =newChromeDriver(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){thrownewRuntimeException(e);}//关闭资源(关闭浏览器)
webDriver.close();}}
感谢阅读,祝君暴富!
版权归原作者 寒山李白 所有, 如有侵权,请联系我们删除。