一、元素的定位

1、通过ID定位元素:
findElement(By.id(element));
2、通过元素的名称定位元素:
findElement(By.name(element));
3、通过元素的html中的位置定位元素:
findElement(By.xpath(element));
4、通过元素的标签名称定位元素:
findElement(By.tagName(element));
5、通过元素的链接名称定位元素:
findElement(By.linkText(element));
6、通过元素的类名定位元素:
findElement(By.className(element));
7、通过元素的css定位元素:
findElement(By.cssSelector(element));
8、通过元素的部分链接名称定位元素:
findElement(By.partialLinkText(element));

二、页面操作

1、模拟鼠标点击:driver.click();
2、打开网页:driver.get("https://www.baidu.com");
3、关闭网页:driver.close();
4、在输入框中输入内容:text.sendKeys(“”);
5、清空输入框中的内容:text.clear();
6、获取输入框中的内容:text.getText();
7、选择下拉框中的元素:
Select select = new Select(wd.findElement(By.id("select")));
8、切换到某个frame:
driver.switchTo().frame("");
9、从一个frame切换到另一个frame:
driver.switchTo().frame("");
10、切换到某个window:
driver.switchTo().window("windowName");
11、返回父iframe:(一般在跳转frame之前都写上这个语句)
driver.switchTo().defaultContent();
12、刷新页面:driver.navigate().refresh();
13、页面前进后退:
driver.navigate().forward();
driver.navigate().back();

14、悬停鼠标:

15、下拉选择框(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();
16、单选项(Radio Button)
WebElement radio=driver.findElement(By.id("BookMode"));
radio.click();     //选择某个单选项
radio.clear();     //清空某个单选项
radio.isSelected();  //判断某个单选项是否已经被选择

17、弹出对话框(Popup dialogs)
Alert alert = driver.switchTo().alert();
alert.accept();  //确定
alert.dismiss();  //取消
alert.getText(); //获取文本
18、表单(Form)
  Form中的元素的操作和其它的元素操作一样,对元素操作完成后对表单的提交可以:
  WebElement approve = driver.findElement(By.id("approve"));
  approve.click();
或
  approve.submit();//只适合于表单的提交
19、上传文件
上传文件的元素操作:
  WebElement adFileUpload =driver.findElement(By.id("WAP-upload"));
  String filePath = "C:\test\\uploadfile\\media_ads\\test.jpg";
  adFileUpload.sendKeys(filePath);
20、Windows 和 Frames之间的切换
driver.switchTo().defaultContent();     //返回到最顶层的frame/iframe
driver.switchTo().frame("leftFrame");    //切换到某个frame:
driver.switchTo().window("windowName"); //切换到某个window
21、 调用Java Script
Web driver对Java Script的调用是通过JavascriptExecutor来实现的,例如:
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("JS脚本");
22、 超时设置
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);  //异步脚本的超时时间

三、断言assertion

验证应用程序的状态是否同所期望的一致。常见的断言包括:验证页面内容,如标题是否为X或当前位置是否正确,或是验证该复选框是否被勾选。
1、断言被用于三种模式: assert 、verify、waitfor
Assert 失败时,该测试将终止。
Verify 失败时,该测试将继续执行,并将错误记入日显示屏 。也就是说允许此单个 验证通过。确保应用程序在正确的页面上。
Waitfor用于等待某些条件变为真。可用于AJAX应用程序的测试。
如果该条件为真,他们将立即成功执行。如果该条件不为真,则将失败并暂停测试。直到超过当前所设定的超时时间。 一般跟setTimeout时间一起用

2、断言常用的有:
assertLocation(判断当前是在正确的页面)、
assertTitle(检查当前页面的title是否正确)、
assertValue(检查input的值, checkbox或radio,有值为”on”无为”off”)、
assertSelected(检查select的下拉菜单中选中是否正确)、
assertSelectedOptions(检查下拉菜单中的选项的是否正确)、
assertText(检查指定元素的文本)、
assertTextPresent(检查在当前给用户显示的页面上是否有出现指定的文本)、
assertTextNotPresent(检查在当前给用户显示的页面上是否没有出现指定的文本)、
assertAttribute(检查当前指定元素的属性的值)、
assertTable(检查table里的某个cell中的值)、
assertEditable(检查指定的input是否可以编辑)、
assertNotEditable(检查指定的input是否不可以编辑)、
assertAlert(检查是否有产生带指定message的alert对话框)、
waitForElementPresent (等待检验某元素的存在。为真时,则执行。)

四、鼠标事件

1、鼠标右击

Actions actions = new Actions(driver);
action.contextClick(driver.findElement(By.id("su")).perform();

2、双击
doubleClick()

3、拖拽
dragAndDrop()

4、鼠标悬停
ClickAndHold()

5、释放掉鼠标操作
release()

6执行所有Action中存储的行为
perform

Selenium+java自动化测试常用知识点的更多相关文章

  1. Selenium+Java自动化测试的方法

    1.设置等待时间Thread.sleep(2000); (1000代表1s)2.断言assertion:验证应用程序的状态是否同所期望的一致.常见的断言包括:验证页面内容,如标题是否为X或当前位置是否 ...

  2. selenium java 自动化测试 基于火狐浏览器/谷歌浏览器

    :环境 java1.8+ieda 直接上代码 pom.xml <?xml version="1.0" encoding="UTF-8"?> < ...

  3. cumber + selenium +java自动化测试

    1.新建一个maven项目,pom文件为: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&quo ...

  4. java代码常用知识点

    1.Assert java断言assert是jdk1.4引入的.assert这个关键字我们称之为"断言".当这个关键字后边的条件为假的时候,程序自动崩溃并抛出AssertionEr ...

  5. Java开发常用知识点总结

    docker exec -it imageId redis-cli docker container ls -a docker rm containerId 复制目录&文件 cp -r /ro ...

  6. 自动化测试框架selenium+java+TestNG——配置篇

    最近来总结下自动化测试 selenium的一些常用框架测试搭配,由简入繁,最简单的就是selenium+java+TestNG了,因为我用的是java,就只是总结下java了. TestNG在线安装: ...

  7. JAVA常用知识点及面试题总结

    1. String.StringBuffer.StringBuilder三者区别? (1)三者在执行速率上的比较: String<StringBuffer<StringBuilder 原因 ...

  8. Java 常用知识点

    Java 常用知识点 1.日期格式化 SimpleDateFormat Date date=new Date(System.currentTimeMillis()) ; SimpleDateForma ...

  9. maven+selenium+java+testng+jenkins自动化测试

    最近在公司搭建了一套基于maven+selenium+java+testng+jenkins的自动化测试框架,免得以后重写记录下 工程目录 pom.xml <project xmlns=&quo ...

随机推荐

  1. 自定义前端框架(VUE+magicbox响应式风格)

    1.用脚手架初始化一个vue项目swain $ vue create swain 2.安装几个常用插件

  2. git最最最最...常用命令

    使用git 也有一段时间了,但是一直没有好好的去学下:今天刚好有空,就把自己不足的地方补了一下:废话就不多说了,直接步入正题: 1:git 如何提交代码 以及 如何拉代码 git clone可以将远程 ...

  3. pymysql操作数据库、索引、慢日志管理

    目录 pymysql操作数据库 简单操作 sql的注入问题 sql注入问题解决办法 sql注入问题模板总结 利用pymysql操作数据库 (增删改),conn.commit() 索引 1.为何要有索引 ...

  4. linux下安装R第三方包forecast

    ERROR: [root@localhost soft]# R CMD INSTALL curl_3.1.tar.gz WARNING: ignoring environment value of R ...

  5. 四叉树的js实现

    基于 https://gamedevelopment.tutsplus.com/tutorials/quick-tip-use-quadtrees-to-detect-likely-collision ...

  6. 剑指offer:关于复制构造函数

    1:首先参看代码: #include "stdafx.h" #include "iostream" using namespace std; class A { ...

  7. XStream详解

    XStream的作用 XStream可以把JavaBean对象转换成XML! 通常服务器向客户端响应的数据都是来自数据库的一组对象,而我们不能直接把对象响应给客户端,所以我们需要把对象转换成XML再响 ...

  8. [论文理解] CBAM: Convolutional Block Attention Module

    CBAM: Convolutional Block Attention Module 简介 本文利用attention机制,使得针对网络有了更好的特征表示,这种结构通过支路学习到通道间关系的权重和像素 ...

  9. 左值引用&右值引用实践【TODO】

    这篇文章写的很好,下半部分还未完全理解,后续还需要回头来看看20190706(): https://www.cnblogs.com/likaiming/p/9045642.html 简单实践如下: # ...

  10. CSS + ul li 横向排列的两种方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...