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

时间:2021-10-25 21:01:03

:环境 java1.8+ieda

直接上代码

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.dqcer</groupId>
    <artifactId>seleniumAotuTest</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <dependencies>
        <!-- 启动谷歌浏览器需要的特点jar包-->
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>22.0</version>
        </dependency>
        <!-- 集成selenium-->
         <dependency>
              <groupId>org.seleniumhq.selenium</groupId>
              <artifactId>selenium-java</artifactId>
              <version>3.7.1</version>
            </dependency>
    </dependencies>
</project>
SeleniumAotuTestDemo.java类

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

import java.io.File;
import java.util.concurrent.TimeUnit;

/**
 * @Author: dongQin
 * @Date: 2018/6/14 8:51
 * @Description: selenium基于火狐浏览器/谷歌浏览器的自动化测试
 */

public class SeleniumAotuTestDemo {

    private static WebDriver webDriver;

    public static void main(String[] args) throws InterruptedException {

        //  初始化谷歌浏览加载所需的配置程序
        initChromeDriver();

        //  初始化火狐浏览器加载所需的配置程序
        //initFirefox();

        //  在打开地址前,清除cookies
        webDriver.manage().deleteAllCookies();

        //  同步浏览器
        webDriver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

        //  打开目标地址,这个使用百度为例。只要是web系统都可以
        webDriver.get("https://www.baidu.com");

        //  搜索spring boot

        //  定位当前的输入框
        WebElement element = webDriver.findElement(By.xpath("//*[@id=\"kw\"]"));

        //  在输入框输入"spring boot"
        element.sendKeys("spring boot");

        //  定位当前的"百度一下"按钮所在的位置
        WebElement submint = webDriver.findElement(By.xpath("//*[@id=\"su\"]"));

        //  点击提交
        submint.click();

        //  休息3秒,等待搜索结果并查看
        Thread.sleep(3000);

        //  最后退出,关闭浏览器
        webDriver.quit();

        System.out.println("good job!");
    }

    /**
     * @Author: dongQin
     * @Date: 2018/6/14 9:09
     * @Description: 初始化加载所需的配置程序
     */

    public static void initChromeDriver(){
        //  chromedriver.exe要与当前使用的谷歌浏览器版本一一对应,下载的地址可在淘宝或者GitHub,并将其解压放在与谷歌
        //  .exe 文件同级下
        File file = new File("C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");
        System.setProperty("webdriver.chrome.driver", file.getAbsolutePath());

        webDriver  = new ChromeDriver();
    }

    /**
     * @Author: dongQin
     * @Date: 2018/6/14 9:51
     * @Description: 初始化火狐浏览器加载所需的配置程序
     */

    public static void initFirefox(){

        //  firefox.exe同样要与当前使用的火狐浏览器版本一一对应,下载的地址可在淘宝或者GitHub

        //  指定火狐浏览器程序的位置
        System.setProperty("webdriver.firefox.bin", "D:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");

        //  指定firefox.exe插件的位置
        System.setProperty("webdriver.gecko.driver", "C://geckodriver.exe");

        webDriver = new FirefoxDriver();
    }
}

 

如何定位当前位置呢?By.xpath()获取括号的值,有个小技巧,打开谷歌浏览器,打开控制台,经过图下操作就可自动获取到xpath值,复制到By.xpath()括号中即可

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