SpringBoot 2.0.3 集成selenium进行测试

SpringBoot 2.0.3 集成selenium进行测试

1.加入 maven 依赖包

        <dependency>
            <groupId>org.seleniumhq.seleniumgroupId>
            <artifactId>selenium-javaartifactId>
            <version>3.13.0version>
        dependency>

2.建立测试用例

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import java.util.concurrent.TimeUnit;

import static org.junit.Assert.assertEquals;

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = DemoApplication.class,
        webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class ServerWebTests {

    private static ChromeDriver browser;

    @Value("${local.server.port}")
    private int port;

    @BeforeClass
    public static void openBrowser() {
        System.setProperty("webdriver.chrome.driver","F:/Chrome WebDriver/chromedriver.exe");
        browser = new ChromeDriver();
        browser.manage().timeouts()
                .implicitlyWait(10, TimeUnit.SECONDS);
    }

    @AfterClass
    public static void closeBrowser() {
        browser.quit();
    }


    @Test
    public void addBookToEmptyList() throws InterruptedException {
        System.out.println("服务器端口:" + port);
        // 要测试的网址
        String baseUrl = "http://localhost:" + port + "/TEST" ;
        browser.get(baseUrl);
        // 对网页表单元素进行赋值操作并提交表单
        assertEquals("You have no books in your book list",
                browser.findElementByTagName("div").getText());
        browser.findElementByName("title")
                .sendKeys("BOOK TITLE");
        browser.findElementByName("author")
                .sendKeys("BOOK AUTHOR");
        browser.findElementByName("isbn")
                .sendKeys("1234567890");
        browser.findElementByName("description")
                .sendKeys("DESCRIPTION");
        browser.findElementByTagName("form")
                .submit();
        // 测试运行结果是否符合预期
        WebElement dl =
                browser.findElementByCssSelector("dt.bookHeadline");
        assertEquals("BOOK TITLE by BOOK AUTHOR (ISBN: 1234567890)",
                dl.getText());
        WebElement dt =
                browser.findElementByCssSelector("dd.bookDescription");
        assertEquals("DESCRIPTION", dt.getText());
    }

}

其中可以对网页dom元素进行操作
3.其中chromedriver.exe可以在网址http://chromedriver.storage.googleapis.com/index.html下载, 注意版本问题, 查看本地chrom版本并下载对应的chromedriver.exe, 版本对应可在版本明细中的notes.txt页面查看
SpringBoot 2.0.3 集成selenium进行测试_第1张图片
4.如果使用FirefoxDriver, 如果没有安装在默认位置, 也需重新指定 driver 位置

你可能感兴趣的:(springboot)