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 //运行于每条测试用例之后
复制代码

 

posted @   寒无衣  阅读(604)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示