Selenium WebDriver 常用API
public classDemo1 {WebDriver driver;@BeforeMethodpublic voidvisit(){//webdriver对象的声明System.setProperty("webdriver.chrome.driver", "e:\\chromedriver.exe");driver= newChromeDriver();}//页面操作,返回上一个页面,前进,刷新
@Testpublic voidVisitRecentUrl(){String url1= "http://www.baidu.com";String url2= "http://www.sina.com";driver.navigate().to(url1);driver.navigate().to(url2);driver.navigate().back();//返回到上一个页面driver.navigate().forward();//前进到下一页面driver.navigate().refresh();//刷新当前页面
driver.close();}//操作浏览器窗口
@Testpublic voidoperateBrower(){//设置浏览器的横纵坐标Point point = new Point(150, 150);//设置浏览器的宽高Dimension dimension = new Dimension(500, 500);driver.manage().window().setPosition(point);driver.manage().window().setSize(dimension);System.out.println(driver.manage().window().getPosition());System.out.println(driver.manage().window().getSize());driver.manage().window().maximize();//窗口最大化driver.get("http//www.baidu.com");driver.close();}//获取页面的title属性
@Testpublic voidgetTitle(){driver.get("http://www.baidu.com");String title=driver.getTitle();System.out.println(title);Assert.assertEquals("百度一下,你就知道", title);driver.close();}//获取页面的URL
@Testpublic voidgetCurrentUrl(){driver.get("http://www.baidu.com");String currentUrl=driver.getCurrentUrl();System.out.println(currentUrl);driver.close();}//清除文本框中的内容//在文本框中输入指定内容
@Testpublic void clearText() throwsInterruptedException{driver.get("file:///F:/workspace/selenium_day01/text.html");WebElement input= driver.findElement(By.id("text"));Thread.sleep(2000);input.clear();//清除文本框中的内容try{Thread.sleep(3000);}catch(Exception e) {e.printStackTrace();}input.sendKeys("selenium自动化测试");//在文本框中输入指定内容try{Thread.sleep(3000);}catch(Exception e) {e.printStackTrace();}driver.close();}//单击按钮
@Testpublic voidclickButton(){driver.get("file:///F:/workspace/selenium_day01/text.html");try{Thread.sleep(3000);}catch(Exception e) {e.printStackTrace();}WebElement button= driver.findElement(By.id("button"));button.click();//单击按钮
driver.close();}//鼠标双击元素
@Testpublic voiddoubleClick(){driver.get("file:///F:/workspace/selenium_day01/text.html");WebElement inputBox= driver.findElement(By.id("inputBox"));//声明Action对象Actions builder = newActions(driver);builder.doubleClick(inputBox).build().perform();driver.close();}//操作单选下拉列表
@Testpublic voidoperateDropList(){driver.get("file:///F:/workspace/selenium_day01/text.html");WebElement element= driver.findElement(By.name("fruit"));Select dropList= newSelect(element);//判断下拉列表是否可多选
Assert.assertFalse(dropList.isMultiple());//断言当前选中的选项文本是否为桃子Assert.assertEquals("桃子", dropList.getFirstSelectedOption().getText());//选中下拉列表中的第2个选项dropList.selectByIndex(1);Assert.assertEquals("橘子", dropList.getFirstSelectedOption().getText());//使用下拉列表选项的value属性值来选中操作dropList.selectByValue("lizhi");Assert.assertEquals("荔枝", dropList.getFirstSelectedOption().getText());//通过选项的文字来进行操作dropList.selectByVisibleText("山楂");Assert.assertEquals("山楂", dropList.getFirstSelectedOption().getText());}//检查单选列表的选项文字是否条预期
@Testpublic voidcheckSelectText(){driver.get("file:///F:/workspace/selenium_day01/text.html");WebElement element=driver.findElement(By.name("fruit"));Select dropList= newSelect(element);//将下拉列表中期望出现的选项文字存在list集合中,Arrays.asList 将数组转换为list对象String[] arr = {"桃子","橘子","荔枝","山楂"};List<String> expect_option =Arrays.asList(arr);//声明一个新的list,用于存取从页面上获取的所有选 项文字List<String> act_option = new ArrayList<>();for(WebElement option : dropList.getOptions()){act_option.add(option.getText());//断言预期对象与实际对象是否完全一致
Assert.assertEquals(expect_option.toArray(), act_option.toArray());}}//操作多选的选择列表
@Testpublic voidopertMultiple(){driver.get("file:///F:/workspace/selenium_day01/text.html");//找到页面的下拉列表元素WebElement element =driver.findElement(By.name("fruit2"));Select dropList= newSelect(element);//判断下拉列表是否支持多选,支持多选isMultiple返回true
Assert.assertTrue(dropList.isMultiple());//使用选择索引选择橘子选项dropList.selectByIndex(1);//使用选择value属性选择荔枝选项dropList.selectByValue("lizhi");//使用选项文字选择山楂dropList.selectByVisibleText("山楂");//取消所有选项的选中状态
dropList.deselectAll();//再次选中3个数据dropList.selectByIndex(1);dropList.selectByValue("lizhi");dropList.selectByVisibleText("山楂");//取消索引为1的选项dropList.deselectByIndex(1);//取消value属性为lizhi的选项dropList.deselectByValue("lizhi");//取消选项文字为山楂的选项dropList.deselectByVisibleText("山楂");driver.close();}//操作单选框
@Testpublic voidoperateRadio(){driver.get("file:///F:/workspace/selenium_day01/text.html");//查找属性值为chengming的单选按钮对象WebElement element = driver.findElement(By.xpath("//input[@value='chengming']"));//如果这个单选项未被选中,则执行click()方法选中这个按钮if(!element.isSelected()){element.click();}//断言属性值为chengming的单选按钮是否处于选中状态
Assert.assertTrue(element.isSelected());//查找name属性值为username的所有对象List<WebElement> elements = driver.findElements(By.name("username"));//查找value属性为lisi的单选按钮对象,如果处于未选中状态,则执行click方法选中for(WebElement element2 : elements){if(element2.getAttribute("value").equals("lisi")){if(!element2.isSelected()){element2.click();//断言单选按钮是否被选中
Assert.assertTrue(element2.isSelected());//成功选中后,退出break;}}}}//操作复选框
@Testpublic void operateCheckBox() throwsException{driver.get("file:///F:/workspace/selenium_day01/text.html");//查找属性为汽车的复选框元素WebElement element = driver.findElement(By.xpath("//input[@value='bus']"));//如果复选框未选中,则选中if(!element.isSelected()){element.click();}Assert.assertTrue(element.isSelected());//如果复选框被选中,则取消选中/*if(element.isSelected()){element.click();}Assert.assertTrue(element.isSelected());*///查找属性为fruit3的元素,并选中List<WebElement> list = driver.findElements(By.name("fruit3"));for(WebElement checkbox : list){checkbox.click();}Thread.sleep(1000);driver.close();}//将当前浏览器窗口截屏
@Testpublic voidscreen(){driver.get("http://www.baidu.com");File file=((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);try{FileUtils.copyFile(file,new File("e:/testing/test.png"));}catch(IOException e) {e.printStackTrace();}}//检查页面元素内容是否出现
@Testpublic voidisElementText(){//判断p标签内容与selenium自动化测试是否完全匹配driver.get("file:///F:/workspace/selenium_day01/text.html");WebElement element= driver.findElement(By.xpath("//p[1]"));String text=element.getText();System.out.println("》》》》》 "+text);Assert.assertEquals("selenium自动化测试1", text);}//执行javascript脚本
@Testpublic voidexecuteJavaScript(){driver.get("http:www.baidu.com");//声明一个JavaScript执行对象JavascriptExecutor js =(JavascriptExecutor) driver;String title= (String) js.executeScript("return document.title");//System.out.println("expected"+title);Assert.assertEquals("百度一下,你就知道", title);//String bottonText = (String) js.executeScript("var button = document.getElementById('su').type='hidden';");String bottonText = (String) js.executeScript("var button = document.getElementById('su');return button.value");System.out.println("》》》》》》"+bottonText);Assert.assertEquals("百度一下", bottonText);driver.close();}
}

public classDemo2 {WebDriver driver;@BeforeMethodpublic voidVisitor(){System.setProperty("webdriver.chrome.driver", "e:\\chromedriver.exe");driver= newChromeDriver();}//模拟键盘的操作
@Testpublic voidclickKeys(){driver.get("http://www.baidu.com");Actions action= newActions(driver);action.keyDown(Keys.CONTROL);//按下ctrl键action.keyDown(Keys.SHIFT);//按下shift键action.keyDown(Keys.ALT);//按下alt键
action.keyUp(Keys.CONTROL);//释放ctrl键action.keyUp(Keys.SHIFT);//释放shift键action.keyUp(Keys.ALT);//释放alt键//模拟键盘在输入框中输入TESTaction.keyDown(Keys.SHIFT).sendKeys("test").perform();}//模拟鼠标右击事件
@Testpublic voidrightClickMouse(){driver.get("http://www.baidu.com");Actions action= newActions(driver);//模拟鼠标右击事件action.contextClick(driver.findElement(By.id("su"))).perform();driver.close();}//在指定元素上方进行鼠标悬浮,及点击悬浮后出现的菜单
@Testpublic void roverOnElement() throwsException{driver.get("http://www.baidu.com");Actions action= newActions(driver);//在指定元素上进行鼠标悬浮action.moveToElement(driver.findElement(By.name("tj_briicon"))).perform();;Thread.sleep(1000);//点击悬浮后出现的菜单driver.findElement(By.linkText("糯米")).click();;driver.close();}//查看页面元素的属性
@Testpublic voidgetWelementAttribute(){driver.get("http://www.baidu.com");String str= "今天天气不错";WebElement input= driver.findElement(By.id("kw"));input.sendKeys(str);String inputText= input.getAttribute("value");System.out.println("....."+inputText);Assert.assertEquals(inputText,"今天天气不错");driver.close();}//获取页面元素的css属性
@Testpublic voidgetWelementCss(){driver.get("http://www.baidu.com");WebElement input= driver.findElement(By.id("kw"));String cssValue= input.getCssValue("width");System.out.println("..... "+cssValue);driver.close();}//常用的显式等待
@Testpublic voidtestWait(){//声明一个WebDriverWait对象,设置最长等待时间为10秒WebDriverWait wait = new WebDriverWait(driver, 10);//判断页面title是否包含“测试页面”4个字String str = "测试页面";wait.until(ExpectedConditions.titleContains("测试页面"));System.out.println("页面标题出现了‘测试页面’4个字");}/*** 判断页面元素是否存在*@paramby*@return*///提供一个页面元素是否存在的方法public booleanisEelement(By by){WebElement element=driver.findElement(by);if(element != null){return true;}return false;} @Testpublic voidtestIsEelement(){driver.get("http://www.baidu.com");//System.out.println(driver.getTitle());if(isEelement(By.id("kw"))){WebElement webElement= driver.findElement(By.id("kw"));if(webElement.isEnabled()){webElement.sendKeys("百度的首页搜索框被成功找到");}}else { //将测试用例设置为失败,并打印失败原因Assert.fail("页面的输入框元素未找到");}driver.close();}//使用title属性识别和操作新弹出的浏览器窗口
@Testpublic voidoperteWindow(){driver.get("file:///F:/workspace/selenium_day01/text.html");//将当前浏览器窗口句柄存在一个变量中String parentWindowHandle =driver.getWindowHandle();//点击页面上的链接地址driver.findElement(By.xpath("//a")).click();//获取当前所有打开的窗口的句柄,并存在set中Set<String> windowHandles =driver.getWindowHandles();if(windowHandles != null){for(String windowHandle : windowHandles){if(driver.switchTo().window(windowHandle).getTitle().equals("百度一下,你就知道")){driver.findElement(By.id("kw")).sendKeys("百度的首页浏览器窗口被找到");}else{Assert.fail("百度的首页浏览器窗口未被找到");}//返回到最开始打开的浏览器窗口
driver.switchTo().window(parentWindowHandle);Assert.assertEquals(driver.getTitle(),"测试页面");}}}//使用页面的文字内容识别和处理新弹出的浏览器窗口
@Testpublic voidoperteWindowByPageSource(){driver.get("file:///F:/workspace/selenium_day01/text.html");//将当前浏览器窗口句柄存在一个变量中String parentWindowHandle =driver.getWindowHandle();//点击页面上的链接地址driver.findElement(By.xpath("//a")).click();//获取当前所有打开的窗口的句柄,并存在set中Set<String> windowHandles =driver.getWindowHandles();for(String windowHandle : windowHandles){try{if(driver.switchTo().window(windowHandle).getPageSource().contains("百度一下")){driver.findElement(By.id("kw")).sendKeys("百度首页的浏览器窗口被找到");}}catch(NoSuchWindowException e) {e.printStackTrace();}}//返回到最开始打开的浏览器窗口
driver.switchTo().window(parentWindowHandle);Assert.assertEquals(driver.getTitle(),"测试页面");}//操作javascript的Alter窗口
@Testpublic voidoperteAlert(){driver.get("file:///F:/workspace/selenium_day01/text.html");//查找到按钮元素WebElement button = driver.findElement(By.name("btn"));button.click();try{//获取alert对象Alert alert =driver.switchTo().alert();Assert.assertEquals("这是一个alert弹窗", alert.getText());//关闭弹窗
alert.accept();}catch(NoAlertPresentException e) {Assert.fail("页面alert弹窗未找到");e.printStackTrace();}}//操作javascript的confirm窗口
@Testpublic voidoperteConfirm(){driver.get("file:///F:/workspace/selenium_day01/text.html");driver.findElement(By.name("confirmbtn")).click();try{Alert alert=driver.switchTo().alert();Assert.assertEquals("这是一个confirm弹窗", alert.getText());alert.accept();//点击确定,关闭弹出窗//alert.dismiss();//点击取消,关闭弹出窗} catch(NoAlertPresentException e) {Assert.fail("页面confirm弹窗未找到");e.printStackTrace();}}//操作javascript的prompt窗口
@Testpublic void opertePrompt() throwsThrowable {driver.get("file:///F:/workspace/selenium_day01/text.html");driver.findElement(By.name("promptbtn")).click();try{Alert alert=driver.switchTo().alert();Assert.assertEquals("这是一个prompt弹窗", alert.getText());alert.sendKeys("好好学习,天天向上");Thread.sleep(3000);alert.accept();}catch(NoAlertPresentException e) {Assert.fail("页面prompt弹窗未找到");e.printStackTrace();}}/*** 操作iframe中的页面元素*/@Testpublic voidtestFrame(){driver.get("file:///F:/workspace/selenium_day01/frameset.html");//必须先进入左侧frame_left.html页面driver.switchTo().frame("leftframe");//找到页面上的p标签WebElement leftFrameText = driver.findElement(By.xpath("//p"));Assert.assertEquals("这是左侧 frame 页面上的文字", leftFrameText.getText());//从左侧返回到frame_left页面  如果不调用 defaultContent()方法,无法从frame_left进入其他页面
driver.switchTo().defaultContent();//进入frame_middle页面driver.switchTo().frame("middleframe");WebElement middleFrameText= driver.findElement(By.xpath("//p"));Assert.assertEquals("这是中间 frame 页面上的文字", middleFrameText.getText());driver.switchTo().defaultContent();driver.switchTo().frame("rightframe");WebElement rightFrameText= driver.findElement(By.xpath("//p"));Assert.assertEquals("这是右侧 frame 页面上的文字", rightFrameText.getText());driver.switchTo().defaultContent();driver.switchTo().frame(1);WebElement text= driver.findElement(By.tagName("p"));//System.out.println(">>>>>>"+ text.getText());Assert.assertEquals("这是中间 frame 页面上的文字", text.getText());driver.close();}//使用frame中的html源码内容来操作frame
@Testpublic voidtestHandleFarme(){driver.get("file:///F:/workspace/selenium_day01/frameset.html");//找到所有frame标签的内容List<WebElement> frames = driver.findElements(By.tagName("frame"));for(WebElement frame : frames){driver.switchTo().frame(frame);//判断frame页面源码中是否包含“中间 frame”if(driver.getPageSource().contains("中间 frame")){//找到页面P标签页面对象WebElement text = driver.findElement(By.xpath("//p"));Assert.assertEquals("这是中间 frame 页面上的文字", text.getText());break;}else{//返回frameset页面
driver.switchTo().defaultContent();}}driver.switchTo().defaultContent();driver.close();}
}

public classDemo3 {WebDriver driver;@BeforeMethodpublic voidVisitor(){System.setProperty("webdriver.chrome.driver", "e:\\chromedriver.exe");driver= newChromeDriver();}//在指定元素上方进行鼠标悬浮,及点击悬浮后出现的菜单
@Testpublic void roverOnElement() throwsException {driver.get("http://www.baidu.com");Actions action= newActions(driver);//在指定元素上进行鼠标悬浮action.moveToElement(driver.findElement(By.name("tj_briicon"))).perform();Thread.sleep(1000);//点击悬浮后出现的菜单driver.findElement(By.linkText("糯米")).click();;driver.close();}//使用frame中的html源码内容来操作frame
@Testpublic voidtestHandleFarme() {driver.get("file:///F:/workspace/selenium_demo/src/main/webapp/frameset.html");//找到所有frame标签的内容List<WebElement> frames = driver.findElements(By.tagName("frame"));for(WebElement frame : frames) {driver.switchTo().frame(frame);//判断frame页面源码中是否包含“中间 frame”if (driver.getPageSource().contains("中间 frame")) {//找到页面P标签页面对象WebElement text = driver.findElement(By.xpath("//p"));Assert.assertEquals("这是中间 frame 页面上的文字", text.getText());break;}else{//返回frameset页面
driver.switchTo().defaultContent();}}driver.switchTo().defaultContent();driver.close();}//操作iframe的页面元素
@Testpublic voidtestHandleFarme2(){driver.get("file:///F:/workspace/selenium_demo/src/main/webapp/frameset.html");driver.switchTo().frame("leftframe");//找到包含“这是iframe 页面上的文字”的元素对象WebElement iframe = driver.findElement(By.tagName("iframe"));//进入iframe页面区域
driver.switchTo().frame(iframe);//在iframe页面找p标签的页面元素WebElement p = driver.findElement(By.xpath("//p"));Assert.assertEquals("这是iframe 页面上的文字", p.getText());driver.close();}//操作浏览器的cookie
@Testpublic voidtestCookie(){driver.get("http://www.baidu.com");//得到当前页面下所有的cookie,并输出所在域、name、value、有效时期和路径Set<Cookie> cookies =driver.manage().getCookies();Cookie cookie= new Cookie("cookieName", "cookieValue");System.out.println(String.format("Domain->name->value->expiry->path"));for(Cookie cookie2 : cookies){System.out.println(String.format("%s->%s->%s->%s->%s",cookie2.getDomain(),cookie2.getName(),cookie2.getValue(),cookie2.getExpiry(),cookie2.getPath()));}//删除cookie//通过cookie的namen属性删除driver.manage().deleteCookieNamed("cookieName");//通过cookie对象删除
driver.manage().deleteCookie(cookie);//删除全部cookie
driver.manage().deleteAllCookies();}
}

posted on 2019-05-14 16:16 Ethon 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/wakey/p/10862858.html

Selenium WebDriver 常用API相关推荐

  1. Selenium Web 自动化 - Selenium常用API

    Selenium Web 自动化 - Selenium常用API 2016-08-01 目录 1 对浏览器操作   1.1 用webdriver打开一个浏览器   1.2 最大化浏览器&关闭浏 ...

  2. java selenium常用API(WebElement、iFrame、select、alert、浏览器窗口、事件、js) 一

     WebElement相关方法 1.点击操作 WebElement button = driver.findElement(By.id("login")); button.clic ...

  3. Selenium WebDriver Api 知识梳理

    之前一直没有系统的梳理WebDriver Api的相关知识,今天借此机会整理一下. 1.页面元素定位 1.1.8种常用定位方法 #id定位 driver.find_element_by_id()#na ...

  4. Selenium WebDriver API 进阶使用,模块化参数化进行自动化测试设计

    2019独角兽企业重金招聘Python工程师标准>>> WebDriver API 进阶使用 元素定位 我们知道,WebDriver API的调用以及自动化测试,务必从页面元素的定位 ...

  5. python+selenium——详解介绍Selenium常用API的使用--python语言(完整版)

    参考:http://www.51testing.com/html/03/n-3725703-2.html from selenium import webdriver driver = webdriv ...

  6. 详解介绍Selenium常用API的使用--Java语言(史无前例的完整)

    一共分为二十个部分:环境安装之Java.环境安装之IntelliJ IDEA.环境安装之selenium.selenium3浏览器驱动.selenium元素定位.控制浏览器操作.WebDriver常用 ...

  7. Python+selenium WebDriver API

    目录 2.1 操作元素基本方法 2.2 常用8种元素定位(Firebug和firepath) 2.3 xpath定位 2.4 CSS定位 2.5 SeleniumBuilder辅助定位元素 2.6 操 ...

  8. selenium—元素、浏览器、元素信息操作常用API

    目录 一.常用元素操作 二.浏览器常用API 三.元素信息操作方法 # 导包 from selenium import webdriver 一.常用元素操作 .send_keys()   # 输入 . ...

  9. Selenium Webdriver元素定位的八种常用方式

    在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.其中By类的常用定位方式共八种,现分别介绍如下 ...

  10. Selenium常用API的使用java语言之6-WebDriver常用方法

    前面我们已经学习了定位元素, 定位只是第一步, 定位之后需要对这个元素进行操作, 或单击(按钮) 或 输入(输入框) , 下面就来认识这些最常用的方法. 1.WebDriver 常用方法 下面先来认识 ...

最新文章

  1. R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(配置点的形状、大小)实战
  2. kernel笔记——中断
  3. Java实现前中后序线索化二叉树以及遍历
  4. 计算机的主要危害是什么意思,cpu使用率是什么意思 cpu使用率低但是电脑卡原因...
  5. Bug测试报告--食物链教学工具--奋斗吧兄弟
  6. 如何通过网线连接两台电脑快速传输数据?
  7. iOS开发多线程篇—线程的状态
  8. (43)System Verilog模块变量数据位宽扩展
  9. Spring面试之bean作用域
  10. groupby java_Java流-在GroupBy之后获取内部元素
  11. python多元线性回归实例_关于多元线性回归分析——PythonSPSS
  12. 今天才知道我们的遭遇不是个例,是不是真有四十大盗呢?
  13. python实现自动化查谁没交作业
  14. 如何利用微博超话引流?
  15. Python pip下载的whl文件到哪里了?如何找到并使用这些whl文件?(whl离线安装包的制作过程示例)
  16. KEIL5出现中文字体乱码
  17. 爬百度翻译的英文同义词
  18. Java—— 流(Stream)、文件(File)和IO
  19. 盒子模型—border
  20. CT0515是一款完善的单节锂电池恒流/恒压线性充电管理芯片

热门文章

  1. line划线计算机图像学,《计算机图形学基础》OpenGL中点画线法画直线(同时支持k1和k1的情况)...
  2. 搜狗android平板专用,搜狗推首款支持Android 3.0平板专用输入法
  3. 网页或大屏展示的倒计时器
  4. 《Vim实用技巧》笔记
  5. 【研一周小结】第十周个人学习总结
  6. 可行性研究及需求分析
  7. 支付宝内部功能调用APP的said说明(转载)
  8. R语言使用epiDisplay包的power.for.2p函数进行效用分析 ( 效能分析、Power analysis)、给定两个样本的比例值(proportions)、样本量计算效用值
  9. MySQL 8 复制(一)——异步复制
  10. 外贸常用术语_13个常用的国际贸易术语详解