多种形式的菜单定位,如下拉框、复选框等
/* * 多种形式的菜单定位,如下拉框、复选框等 */ package com.sfwork; import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.support.ui.Select; public class PageObjectModel2 { public static void main(String[] args) throws InterruptedException { // TODO Auto-generated method stub //设置WebDrivrer路径 System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\Google" + "\\Chrome\\Application\\chromedriver.exe"); //创建webdriver对象,控制浏览器 WebDriver driver = new ChromeDriver(); //打开selenium处理网页 driver.navigate().to("file:///C:/Users/Administrator/Desktop/" + "%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/example.html"); //浏览器最大化 driver.manage().window().maximize(); //线程休眠3秒 Thread.sleep(3000); /* //上传文件 WebElement uploadfile = driver.findElement(By.name("attach[]")); uploadfile.sendKeys("C:\\Users\\Administrator\\Desktop\\自动化测试\\book1.xsl"); //线程休眠3秒 Thread.sleep(3000); */ /* //弹出框 WebElement al = driver.findElement(By.name("alterbutton")); al.click(); Alert alert = driver.switchTo().alert(); //打印出弹出框的内容 System.out.println(alert.getText()); //线程休眠3秒 Thread.sleep(3000); //弹出框确定 // alert.accept(); //线程休眠3秒 Thread.sleep(3000); //点击关闭 alert.dismiss(); //线程休眠3秒 Thread.sleep(3000); */ /* //向弹出框输入内容,example的第二个例子 driver.findElement(By.name("promptbutton")).click(); Alert alert = driver.switchTo().alert(); //获取弹出框内容 String text = alert.getText(); System.out.println(text); //向弹出框输入内容 alert.sendKeys("hello"); //线程休眠3秒 Thread.sleep(3000); //点击确定 alert.accept(); System.out.println(alert.getText()); //线程休眠3秒 Thread.sleep(2000); alert.accept(); //线程休眠3秒 Thread.sleep(3000); */ /* //弹出框,二次确定 driver.findElement(By.name("confirmbutton")).click(); Alert alert = driver.switchTo().alert(); //获取第一个弹出框的内容 System.out.println(alert.getText()); //点击确定 alert.accept(); //获取第二个弹出框的内容 System.out.println(alert.getText()); //点击确定 alert.accept(); */ /* //下拉选择 //通过ID定位到下拉列表 WebElement selector = driver.findElement(By.id("Selector")); //创建select对象 Select select = new Select(selector); //通过Text选择 // select.selectByVisibleText("香蕉"); //通过index选择,是根据自己本身的index去取,而不是取前面的index // select.selectByIndex(3); //通过value选择 select.selectByValue("grape"); //线程休眠3秒 Thread.sleep(3000); //点击选择结果 driver.findElement(By.name("showSelectResult")).click();; Alert alert = driver.switchTo().alert(); //输入弹出框内容 System.out.println(alert.getText()); //点击确定 alert.accept(); */ /* //单选框 //就是直接定位到选项,然后点击 // driver.findElement(By.className("AliBaBa")).click(); //通过cssSelector定位 driver.findElement(By.xpath("/html/body/center/p[1]/table/tbody/tr[7]/td[2]/div/label[3]")); //线程休眠3秒 Thread.sleep(3000); */ /* //复选框 //滚动定位,方法一,通过估窗体坐标x,y值 // JavascriptExecutor js= (JavascriptExecutor)driver; // js.executeScript("window.scrollTo(1,1000)"); //方法二,取到定位元素的坐标,然后将值传进去 //得出定位元素的x坐标值和y坐标值 // int x = driver.findElement(By.id("checkbox")).getLocation().x; // int y = driver.findElement(By.id("checkbox")).getLocation().y; // JavascriptExecutor js= (JavascriptExecutor)driver; // //将x值和y值传到scrollto中 // js.executeScript("window.scrollTo("+x+","+y+")"); //方法三,直接滚动到定位元素处 JavascriptExecutor js = (JavascriptExecutor)driver; js.executeScript("arguments[0].scrollIntoView()",driver.findElement(By.id("checkbox"))); //线程休眠3秒 Thread.sleep(3000); //勾选wed复选框 driver.findElement(By.id("web")).click(); //勾选training复选框 driver.findElement(By.xpath("//*[@id='training']")).click(); //勾选friend复选框 driver.findElement(By.cssSelector("input#friend")).click(); //线程休眠3秒 Thread.sleep(3000); */ //下拉列表选择link JavascriptExecutor js = (JavascriptExecutor)driver; js.executeScript("arguments[0].scrollIntoView()", driver.findElement(By.id("jumpMenu"))); WebElement selector = driver.findElement(By.id("jumpMenu")); //创建一个select实例,并将selector传进去 Select select = new Select(selector); //通过text选择 select.selectByVisibleText("新乡市教育局"); //线程休眠3秒 Thread.sleep(3000); //关闭driver driver.quit(); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?