其他分享
首页 > 其他分享> > 2019-8-12软测3班selenium第一天笔记

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