SpringBoot 2.0.3 集成selenium进行测试
1.加入 maven 依赖包
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.13.0</version>
</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
页面查看
4.如果使用FirefoxDriver
, 如果没有安装在默认位置, 也需重新指定 driver 位置