一、元素的定位

ID定位元素:

findElement(By.id(element));

通过元素的名称定位元素:

findElement(By.name(element));

通过元素的html中的位置定位元素:

findElement(By.xpath(element));

通过元素的标签名称定位元素:

findElement(By.tagName(element));

通过元素的链接名称定位元素:

findElement(By.linkText(element));

通过元素的类名定位元素:

findElement(By.className(element));

通过元素的css定位元素:

findElement(By.cssSelector(element));

通过元素的部分链接名称定位元素:

findElement(By.partialLinkText(element));

二、元素操作

模拟鼠标点击:driver.click();

打开网页:driver.get("https://www.baidu.com");

关闭网页:driver.close();

在输入框中输入内容:text.sendKeys(“”);

清空输入框中的内容:text.clear();

获取输入框中的内容:text.getText();

选择下拉框中的元素:

Select select = new Select(wd.findElement(By.id("select")));

切换到某个frame:

driver.switchTo().frame("");

从一个frame切换到另一个frame:

driver.switchTo().frame("");

切换到某个window:

driver.switchTo().window("windowName");

返回父iframe:(一般在跳转frame之前都写上这个语句)

driver.switchTo().defaultContent();

刷新页面:driver.navigate().refresh();

页面前进后退:

driver.navigate().forward();

driver.navigate().back();

三、鼠标操作

常用的鼠标右击、双击、悬停、拖动等功能都封装在Actions类中。

代码MouseOperation.java,链接:http://pan.baidu.com/s/1i5zmwoX 密码:n88i

perform() 执行所有Actions中存储的行为
contextclick() 右击
click() 左击
doubleclick() 双击
dragAndDrop()
拖动
moveToElement()
鼠标悬停
//左击实现(和元素的click类似)Actions action = newActions(driver);WebElement test= driver.findElement(By.xpath("//div[2]/span[2]"));action.click(test).perform();

//双击实现
new Actions(driver).

doubleClick

(driver.findElement(By.xpath("//div[2]/span[2]"))).perform();

//悬停 到更多按钮
new Actions(driver).

moveToElement

(driver.findElement(By.xpath("//*[@id='topPanel']/ul/li[3]/a"))).perform();

四、常用input操作

输入框(text field or textarea)

WebElement element = driver.findElement(By.id("passwd-id"));

  • element.sendKeys(“test”);//在输入框中输入内容:
  • element.clear();   //将输入框清空
  • element.getText();   //获取输入框的文本内容:

下拉选择框(Select)

Select select = new Select(driver.findElement(By.id("select")));

  • select.selectByVisibleText(“A”);
  • select.selectByValue(“1”);
  • select.deselectAll();
  • select.deselectByValue(“1”);
  • select.deselectByVisibleText(“A”);
  • select.getAllSelectedOptions();
  • select.getFirstSelectedOption();

单选项(Radio Button)

WebElement radio=driver.findElement(By.id("BookMode"));

  • radio.click();   //选择某个单选项
  • radio.clear();  //清空某个单选项
  • radio.isSelected();  //判断某个单选项是否已经被选择

多选项(checkbox)

WebElement checkbox = driver.findElement(By.id("myCheckbox."));

  • checkbox.click();
  • checkbox.clear();
  • checkbox.isSelected();
  • checkbox.isEnabled();

按钮(button)

WebElement btn= driver.findElement(By.id("save"));

  • btn.click();      //点击按钮
  • btn.isEnabled ();  //判断按钮是否enable

弹出对话框(Popup dialogs)

Alert alert = driver.switchTo().alert();

  • alert.accept();  //确定
  • alert.dismiss();  //取消
  • alert.getText(); //获取文本

表单(Form)

  Form中的元素的操作和其它的元素操作一样,对元素操作完成后对表单的提交可以:

  WebElement approve = driver.findElement(By.id("approve"));

  approve.click();

  approve.submit();//只适合于表单的提交

五、其他操作

上传文件的元素操作:

  WebElement adFileUpload =driver.findElement(By.id("WAP-upload"));

  String filePath = "C:\test\\uploadfile\\media_ads\\test.jpg";

  adFileUpload.sendKeys(filePath);

Windows 和 Frames之间的切换

  • driver.switchTo().defaultContent();     //返回到最顶层的frame/iframe
  • driver.switchTo().frame("leftFrame");    //切换到某个frame:
  • driver.switchTo().window("windowName"); //切换到某个window

调用Java Script

Web driver对Java Script的调用是通过JavascriptExecutor来实现的,例如:

JavascriptExecutor js = (JavascriptExecutor) driver;

js.executeScript("JS脚本");

超时设置

WebDriver driver = new FirefoxDriver();

  • driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);  //识别元素时的超时时间
  • driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);  //页面加载时的超时时间
  • driver.manage().timeouts().setScriptTimeout(10, TimeUnit.SECONDS);  //异步脚本的超时时间

转载于:https://www.cnblogs.com/MR-FANWB/p/7908552.html

Selenium2之Web自动化编写API(Java)相关推荐

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

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

  2. WEB自动化(Python+selenium)的API

    在做Web自动化过程中,汇总了Python+selenium的API相关方法,给公司里的同事做了第二次培训,分享给大家                                         ...

  3. 做python自动化得时候怎么添加断言_在编写Web自动化测试用例的时候,如何写断言使新手不解,严格意义上来讲,没有断言的自动化脚本不能叫测试用例。就像功能测试一样,当测试人员做了一些操作...

    在编写Web自动化测试用例的时候,如何写断言使新手不解,严格意义上来讲,没有断言的自动化脚本不能叫测试用例.就像功能测试一样,当测试人员做了一些操作之后必然会判断实际结果是否等于预期结果,只不过,这个 ...

  4. Java web+MySQL编写简易候选人投票(完整代码)

    Java web+MySQL编写简易候选人投票(完整代码) 代码实现效果,自己选的图片太大了,没有做更改,将就看就行 项目用到的三个jar包自己导入就行 代码结构如下图 Candidate中的代码 p ...

  5. python 商城api编写_Python实战-编写Web App-Day8-编写API

    原标题:Python实战-编写Web App-Day8-编写API API就是把Web App的功能全部封装了,所以,通过API操作数据,可以极大地把前端和后端的代码隔离,使得后端代码易于测试,前端代 ...

  6. web自动化如何在不同浏览器运行_如何给树莓派搭建WEB开发运行环境之JAVA篇

    在上一篇,我们已经脱掉了她华丽的外衣,你不用再添加任何华而不实的装饰,一切都交给CLI来搞定.树莓派WEB开发运行环境之JAVA篇,只需5个步骤: 安装JAVA开发包 安装和运行maven 创建JAV ...

  7. python写web自动化_使用Python+selenium实现第一个自动化测试脚本

    原标题:使用Python+selenium实现第一个自动化测试脚本 最近在学web自动化,记录一下学习过程. 此处我选用python3.6+selenium3.0,均用最新版本,以适应未来需求. 环境 ...

  8. Web自动化测试(一)—— Web自动化入门

    ​​​​​​​其他Web测试知识参考:Web自动化测试 目录 一.自动化介绍 1.什么是自动化 2.什么是自动化测试 2.1.自动化测试能解决什么问题? 2.2.自动化测试相关知识 3.什么是Web自 ...

  9. Web自动化测试之playwright:概述

    playwright是由微软开发的Web UI自动化测试工具, 支持Node.js.Python.C# 和 Java语言,本文将介绍playwright的特性以及它的简单使用. 目录 playwrig ...

最新文章

  1. 这三所985,博士生毕业,可能不再要求发表论文!
  2. hibernate 插入 效率_Hibernate:检索策略的学习1
  3. 了解EF CodeFirst的Migrator功能与Migrator.Net对比
  4. Leecode15. 三数之和——Leecode大厂热题100道系列
  5. kie-api_KIE-WB / JBPM控制台Ng –配置
  6. RT-Thread中自定义MSH命令传入的参数是字符串,需用户自行检查和解析
  7. 看了新闻,思科研发中心 没有成都的。。。
  8. 7-84 点赞狂魔 (25 分)
  9. Redis(十三)Python客户端redis-py
  10. pta冒泡排序c语言_PTA 冒泡排序
  11. 如何突破大众点评接口风控?
  12. 手机12306买卧铺下铺技巧_12306如何选择上下铺 选择上下铺小技巧
  13. 计算机30秒自动更换的桌面软件,无需任何软件即可在计算机上的多个桌面墙纸之间自动切换...
  14. 修改smartbi的JVM调优
  15. python自动更换电脑桌面壁纸
  16. Discuz数据字典1
  17. latex 参考文献显示问号_VS Code + LaTeX
  18. ppt模板如何制作个性海报?
  19. 用python做一个简单的投票程序_如何编写一个自动投票程序
  20. 斯坦福NLP名课带学详解 | CS224n 第12讲 - NLP子词模型(NLP通关指南·完结)

热门文章

  1. 数据结构(二)算法基础与复杂度
  2. 如何在国内下载Eclipse及其插件
  3. border-边框的形状
  4. 共享锁+行锁防止其他事务对指定行同时更新
  5. Android分享中, 过滤指定的应用,已经过滤蓝牙, 并且对不同的分享方式发送不同的内容?...
  6. STM32F407VG uCOS-II2.91 IAR工程 以及uCOS使用库编译的方法
  7. 21丨容器化守护进程的意义:DaemonSet
  8. python语言程序设计王恺答案在哪找_Python语言程序设计
  9. hdu1847(博弈论:sg函数)
  10. 小a与204(牛客寒假算法集训营1题目B)