前端自动化自动化测试

HTML前端:webdriver总结

2017-11-28  本文已影响364人  果芽软件

一、依赖jar包

        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>2.50.0</version>
        </dependency>

一、启动浏览器

1. 支持浏览器种类

驱动名称 操作系统 webriver实现类
HtmlUnit Driver All org.openqa.selenium.htmlunit.HtmlUnitDriver
Firefox Driver All org.openqa.selenium.firefox.FirefoxDriver
Internet Explorer Driver Windows org.openqa.selenium.ie.InternetExplorerDriver
Chrome Driver All org.openqa.selenium.chrome.ChromeDriver

2. 打开浏览器

打开firefox浏览器:
WebDriver driver = new FirefoxDriver(); 

打开IE浏览器
WebDriver driver = new InternetExplorerDriver ();

打开HtmlUnit浏览器
WebDriverdriver = new HtmlUnitDriver(); 

打开chrome浏览器
WebDriverdriver = new ChromeDriver();

3. firefox

//启动默认安装路径下的ff
    public void StartFireFoxByDefault(){
        System.out.println("start firefox browser...");
        WebDriver driver = new FirefoxDriver();      //直接new一个FirefoxDriver即可
        Navigation navigation = driver.navigate();
        navigation.to("http://www.baidu.com/");
        System.out.println("start firefox browser succeed...");        
    }

4. chrome

public static void StartChrome(){
        System.out.println("启动chrome浏览器...");  
        //指定驱动路径      
        System.setProperty("webdriver.chrome.driver", "files\\chromedriver.exe");  
        WebDriver driver = new ChromeDriver();
        driver.get("http://www.baidu.com/");
        System.out.println("启动chrome浏览器成功...");        
    }

5. 启动IE

public static void StartIE(){
        System.out.println("start firefox browser...");        
        System.setProperty("webdriver.ie.driver", "files\\IEDriverServer.exe");
        WebDriver driver = new InternetExplorerDriver();
        driver.get("http://www.baidu.com/");
        System.out.println("start firefox browser succeed...");        
    }

二、打开网页

1. 打开界面

driver.navigate().to( "http://www.example.com" );
或
driver.get( "http://www.example.com" );

navigate().to()和get()功能完全一样。

2. 新界面、前进、后退和刷新

driver.navigate().to("要打开的新地址");
driver.navigate().forward();
driver.navigate().back();
driver.navigate().refresh();

写好driver.navigate()后,输入"."查看可选方法列表(剔除object的方法)


image.png

二、元素定位

1. 测试例子

<input class="input_class" type="text" name="passwd" id="passwd-id" /> 

2. By.id:

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

3. By.name:

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

4. By.className

WebElement element = driver.findElement(By.className("input_class"));

5. By.cssSelector

## '':标签选择器
WebElement element = driver.findElement(By.cssSelector("input"));
## '#':id选择器
WebElement element = driver.findElement(By.cssSelector("#passwd-id"));
## '.':class选择器
WebElement element = driver.findElement(By.cssSelector(".input_class"));
## '[id=passwd-id]':属性选择器
WebElement element = driver.findElement(By.cssSelector(".input_class"));

6. By.xpath:

WebElement element =driver.findElement(By.xpath("//input[@id='passwd-id']")); 

6. By.linkText:

//通俗点就是精确查询
WebDriver driver = new FirefoxDriver();
driver.get("http://www.baidu.com/"); 
WebElement element = driver.findElement(By.linkText("百科"));

7. By.partialLinkText:

//这个方法就是模糊查询
WebDriver driver = new FirefoxDriver();
driver.get("http://www.baidu.com/"); 
WebElement element = driver.findElement(By.partialLinkText("hao"));

三、XPATH语法

1. xpath插件

  1. 下载chrome的xpath插件
  2. 添加到chrome的扩展区(拖进去就行)


    image.png
  3. 使用xpath插件,shift选择元素,自动生成xpath值


    image.png

2. xpath常用符号:

符号 含义 示例
/ 表示绝对路径绝对路径是指从根目录开始
// 表示相对路径
. 表示当前层
.. 表示上一层
* 表示通配符
@ 表示属性,多个用and或or
[] 属性的判断条件表达式

3. xpath常用函数:

函数名 示例 用途
contains () //div[contains(@id,'widget')] 选择id属性中包含'widget'的div
text() //a[text()='hello world'] 选择文本值为'hello world'的节点
last() 选择最后一个
starts-with() //div[starts-with(@id,'common')] 选择id属性中’common’开头的div节点
not() 否定

三、基本元素操作

1. 文件上传

        WebElement load = this.locateElementByXpath(locator);
        load.sendKeys(path);

2. 按钮

        WebElement submit = this.locateElementByXpath(locator);
        submit.click();
        submit.isEnabled();

3. 选择框

按下标选

WebElement element = this.locateElementByXpath(locator);
        Select select = new Select(element);
        select.selectByIndex(index);  

4. 输入框

        WebElement input = this.locateElementByCss(locator);
        input.clear();
        input.sendKeys(content); 

5. 单选框

        WebElement radio = this.locateElementByXpath(locator);
        radio.click();
        radio.isSelected();

6. 复选框

        WebElement checkbox = this.locateElementByXpath(locator);
        checkbox.click();
        checkbox.isSelected();

2. 超链接

        WebElement link = this.locateElementByXpath(locator);
        link.click();

按值选

 WebElement element = this.locateElementByXpath(locator);
        Select select = new Select(element);
        select.selectByValue(value);
        //select.selectByVisibleText(text);

6. 按钮

        WebElement submit = this.locateElementByXpath(locator);
        submit.click();
        submit.isEnabled();

8. 关闭和退出

    public void closeBrowser()
    {
        driver.close();
        driver.quit();
    }

四、窗口操作

3. 切换到alert框

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

4. 切换到窗口

driver.switchTo().window( "windowName" ); 
或者
for (String handle : driver.getWindowHandles()) {
driver.switchTo().window(handle);
}

5. 切换到iframe

driver.switchTo().frame( "frameName" );
通过索引访问subframe:
driver.switchTo().frame( "frameName.0.child" );(frameName的第一个subframe的明价child的frame)

五、鼠标键盘操作

1. 拖拽

2. 键盘打字

3. 鼠标移动

上一篇下一篇

猜你喜欢

热点阅读