Selenium-java
//打开浏览器 Webdriver driver = new ChromeDriver(); //设置窗口大小 driver.manage().window().setSize(new Dimension(800,600)) //窗口最大化 driver.manage().window().maximize(); //访问网址 driver.get(); //元素定位 driver.findElement(By.id("元素的id的属性的值")) driver.findElement(By.name("元素的name属性的值")) driver.findElement(By.className("元素class属性的一个值")) //class的值有空格隔开就算两个值,只能写一个 driver.findElement(By.linkText("超链接a元素的全部文本")) driver.findElement(By.partialLinkText("超链接a元素的部分文本")) driver.findElement(By.tagName("要定位的元素的名字")) driver.findElement(By.xpath("//元素名[@属性='属性值']")) driver.findElement(By.xpath("//元素名[@属性1='属性值' and @属性2='属性值']")) driver.findElement(By.xpath("元素的绝对路径定位")) driver.findElement(By.cssSelector()) //元素操作 click(); clear(); sendKeys(); //浏览器弹窗 //获取弹窗文本 String text = driver.switchTo().alert().getText(); //点击弹窗确定 driver.switchTo().alert().accept(); //点击弹窗取消 driver.switchTo().alert().dismiss(); //输入数据 driver.switchTo().alert.sendKeys("") //下拉框处理(下拉框元素必须是select选项必须是option) Select s1 = new Select(driver.findElement(By.id(""))); s1.selectByVisibleText("上海市");//option的文本是"上海市"<option value="310000">上海市</option> Select s2 = new Select(driver.findElement(By.id("city"))); s2.selectByIndex(1);// 选择select中的第2个option Select s3 = new Select(driver.findElement(By.id("district"))); s3.selectByValue("310101");//使用option元素的value属性 <option value="310101">黄浦区</option> //处理浏览器多个窗口(多个标签页) driver.close();// 关闭旧窗口,只保留新的 for (String handle : driver.getWindowHandles()) { // 使用循环获取仅剩的窗口的值 driver.switchTo().window(handle);// 切换窗口 } //自动化鼠标键盘操作 //创建Action类的对象 Action action = new Actions(driver); //模拟点击 actions.click(driver.findElement(By.linkText("手机、数码、通讯"))).perform(); //模拟双击 actions.doubleClick(driver.findElement(By.linkText("摄影摄像"))).perform(); //模拟按键 actions.sendKeys(Keys.PAGE_DOWN).perform(); //模拟鼠标悬停 actions.moveToElement(driver.findElement(By.linkText("摄影摄像"))).perform();
//testng框架 @Test //一条测试用例 @Test(dependsOnMethods = {"testCase2"}) //在testCase2测试用例后执行
@Source("data/reg.csv") //参数化
@BeforeClass //运行于当前所有用例之前 @AfterClass //运行于当前所有测试用例之后 @BeforeMethod //运行于每条测试用例之前 @AfterMethod //运行于每条测试用例之后
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?