2019-8-12软测3班selenium第一天笔记
作者:互联网
selenium:Web UI层面的自动化测试框架
配置selenium环境
1、selenium jar包的导入
2、浏览器驱动路径配置到PATH中
3、浏览器执行路径配置到PATH中
版本:
1.0 RC
2.0 WebDriver
3.0 去除RC,浏览器驱动官方支持,火狐的驱动与jar包分离
4.0 不久的将来
内容:
IDE浏览器插件,用于录制回放生成脚本
WebDriver
Grid多节点控制
打开浏览器:
WebDriver 浏览器对象=new 浏览器驱动类();
WebDriver driver = new FirefoxDriver();
打开网页:
浏览器对象.get(String URL)
driver.get("https://www.baidu.com");
关闭浏览器:
Thread.sleep(3000);
driver.quit();
如果没有配置环境变量,需要通过代码段指定路径:
System.setProperty("webdriver.驱动名.driver", "驱动路径");
System.setProperty("webdriver.gecko.driver", "驱动路径");
System.setProperty("webdriver.gecko.driver", "D:\\Driver\\geckodriver.exe");
System.setProperty("webdriver.浏览器名.bin", "浏览器路径");
System.setProperty("webdriver.firefox.bin", "浏览器路径");
System.setProperty("webdriver.firefox.bin", "C:\\Program Files\\Mozilla Firefox\\firefox.exe");
selenium页面的元素获取方式
1:id:通过标签的id属性值查找元素对象
WebDriver driver = new FirefoxDriver();
driver.get("https://cn.bing.com");
driver.findElement(By.id("sb_form_q")).sendKeys("然学科技");
driver.findElement(By.id("sb_form_go")).click();
2: name:通过标签的name属性值查找元素对象
WebDriver driver = new FirefoxDriver();
driver.get("https://cn.bing.com");
driver.findElement(By.name("q")).sendKeys("然学科技");
driver.findElement(By.name("go")).click();
3:className:通过标签的class属性值查找元素对象
WebDriver driver = new FirefoxDriver();
driver.get("https://cn.bing.com");
driver.findElement(By.className("b_searchbox")).sendKeys("然学科技");
driver.findElement(By.className("b_searchboxSubmit")).click();
4:LinkText:通过超链接标签的文本值查找元素
WebDriver driver = new FirefoxDriver();
driver.get("https://www.baidu.com");
driver.findElement(By.linkText("新闻")).click();
5:partialLinkText:通过超链接标签部分文本值查找元素
WebDriver driver = new FirefoxDriver();
driver.get("https://www.baidu.com");
driver.findElement(By.partialLinkText("hao")).click();
6:cssSelector:通过标签的css选择器查找元素对象。
WebDriver driver = new FirefoxDriver();
driver.get("https://www.baidu.com");
driver.findElement(By.cssSelector("#kw")).sendKeys("然学科技");
driver.findElement(By.cssSelector("#su")).click();
7:tagName:通过标签名查找元素对象。
这个方法搜索到的元素通常不止一个,所有一般建议结合使用findElements方法 来使用。
WebDriver driver = new FirefoxDriver();
driver.get("https://www.baidu.com");
List<WebElement> elements = driver.findElements(By.tagName("a"));
for (WebElement element : elements) {
System.out.println(element.getText());
}
8:xpath:通过标签的路径来查找元素对象
绝对路径:基本上不建议使用
相对路径://标签名(*)[顺位/@属性='属性值']/标签名
(//跟标签,*代表 任意标签)
WebDriver driver = new FirefoxDriver();
driver.get("https://www.baidu.com");
driver.findElement(By.xpath("//*[@id=\"kw\"]")).sendKeys("2019研究生入学考试");
driver.findElement(By.xpath("//*[@id=\"su\"]")).click();
案例1:使用selenium+junit测试bugzilla登录系统
import java.util.Arrays;
import java.util.Collection;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Bug_Login {
WebDriver driver;
@BeforeEach
public void open() {
driver = new FirefoxDriver();
}
@AfterEach
public void close() {
driver.quit();
}
@ParameterizedTest
@MethodSource("dp1")
public void BugzillaLogin(String uname, String pwd) {
driver.get("http://192.168.221.128/bugzilla/");
driver.findElement(By.linkText("Log In")).click();
driver.findElement(By.id("Bugzilla_login_top")).sendKeys(uname);
driver.findElement(By.id("Bugzilla_password_top")).sendKeys(pwd);
driver.findElement(By.id("log_in_top")).click();
String status = driver.findElement(By.xpath("/html/body/div[1]/table[1]/tbody/tr/td[1]/p")).getText();
System.out.println(status);
switch (status) {
case "Bugzilla – Welcome to Bugzilla":
System.out.println(uname + ":管理员");
break;
case "Bugzilla – Main Page":
System.out.println(uname + "普通用户");
break;
case "Bugzilla – Account Disabled":
System.out.println(uname + "禁用用户");
break;
case "Bugzilla – Invalid Username Or Password":
System.out.println(uname + "账号或者密码错误");
break;
default:
System.out.println(uname + "其他用户");
}
}
public static Collection<Object[]> dp1() {
return Arrays.asList(new Object[][] { { "scbigboss@163.com", "123456" }, { "bbb@163.com", "123456" },
{ "aaa@163.com", "123456" }, { "ccc@163.com", "1234567" } });
}
}
标签:WebDriver,12,软测,selenium,driver,System,findElement,new,com 来源: https://blog.csdn.net/JCY58/article/details/99329923