自动化测试笔记三:Actions方法中的一些常用情况
一. Actions方法中的一些常用情况
- 鼠标悬停
Actions build =new Actions(driver);
build.moveToElement(driver.findElement(By.xpath("/html/body/div[1]/div[1]/div[3]/div/a"))).perform();
- 表格定位
WebElement sb = driver.findElement(By.xpath("/html/body/table/tbody/tr[3]/td[1]"));
System.out.println(sb.getText());
- css和xpath的区别
css比较快,但有些浏览器不支持,语法复杂
xpath语法简单,但效率慢 - close和quit的区别:
driver.close();
driver.quit();
区别:
close:关闭浏览器,但对象还在
quit:直接杀进程
可以先用close关闭浏览器,再用quit杀掉进程
- js定位
第一中方法:直接为日期控件强行赋值
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementById('fromDate').setAttribute('value','2013-06-21');");
// js.executeScript("document.getElementById('fromDate').value='2013-06-21';");
或者使用js把界面中的不可操作用emoveAttribute去掉,然后用常规的findelement方法定位:
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementById('input2').removeAttribute('disabled');");
driver.findElement(By.id("input2")).clear();
driver.findElement(By.id("input2")).sendKeys("现在可用了");
截图问题后续再看
D:\BaiduNetdiskDownload\20180915班\win\20181020\03
- testNG
package demo_20200825;
import org.testng.annotations.Test;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.AfterSuite;
public class testng1 {
@Test
//实际写的测试用例
public void f() {
System.out.println("test1");
}
@Test
//实际写的测试用例
public void f2() {
System.out.println("test2");
}
@BeforeMethod
public void beforeMethod() {
System.out.println("beforeMethod");
}
@AfterMethod
public void afterMethod() {
System.out.println("afterMethod");
}
@BeforeClass
public void beforeClass() {
System.out.println("beforeClass");
}
@AfterClass
public void afterClass() {
System.out.println("afterClass");
}
@BeforeTest
public void beforeTest() {
System.out.println("beforeTest");
}
@AfterTest
public void afterTest() {
System.out.println("afterTest");
}
@BeforeSuite
public void beforeSuite() {
System.out.println("beforeSuite");
}
@AfterSuite
public void afterSuite() {
System.out.println("afterSuite");
}
}
执行顺序
beforeSuite
beforeTest
beforeClass
beforeMethod
test1
afterMethod
beforeMethod
test2
afterMethod
afterClass
afterTest
PASSED: f
PASSED: f2
运行testng,需要使用xml文件
新建一个xml文件:
在包上右键->new->other->xml->xml file
新建成功
在testNG官网testng.上复制xml的代码段
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd" >
<suite name