Cree un nuevo proyecto Maven y agregue las dependencias necesarias
1. Cree un nuevo proyecto Maven
2. Agregue las dependencias requeridas en pom.xml, aquí solo necesitamos selenium y testng.
<!-- https://mvnrepository.com -->
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.4.0</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.8.8</version>
<scope>test</scope>
</dependency>
</dependencies>
Puede buscar la biblioteca requerida en https://mvnrepository.com, seleccionar la versión y copiar su información de dependencia.
Configura el navegador y manéjalo
1. Cree un nuevo Browser.java, configure los ajustes del navegador y cree una instancia de FirefoxDriver.
package com.test.testng;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
* @Author chunmei deng
* @Description 配置浏览器设置
* @Date 2021/3/21
*/
public class Brower {
WebDriver driver;
public WebDriver firefox(){
String webDriverPath = "/Users/dengchunmei/WebDriver/geckodriver29";
String firefoxPath = "/Applications/Firefox.app/Contents/MacOS/firefox";
//关掉火狐浏览器的日志
System.setProperty(FirefoxDriver.SystemProperty.BROWSER_LOGFILE,"/dev/null");
System.setProperty("webdriver.gecko.driver",webDriverPath);
System.setProperty("webdriver.firefox.bin",firefoxPath);
FirefoxOptions options = new FirefoxOptions();
options.addArguments("--start-maximized"); // 启动时自动最大化窗口
options.addArguments("--disable-popup-blocking"); // 禁用阻止弹出窗口
options.addArguments("no-sandbox"); // 启动无沙盒模式运行
options.addArguments("disable-extensions"); // 禁用扩展
options.addArguments("no-default-browser-check"); // 默认浏览器检查
Map<String, Object> prefs = new HashMap();
prefs.put("credentials_enable_service", false);
prefs.put("profile.password_manager_enabled", false);
//options.setExperimentalOption("prefs", prefs);// 禁用保存密码提示框
driver = new FirefoxDriver(options);
//设置寻找一个元素的时间
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
return driver;
}
}
**Nota: Para ver la tabla de comparación entre las versiones de chromdriver y del navegador, consulte: **https://blog.csdn.net/huilan_same/article/details/51896672
Abra la URL, ubique el elemento de la página y opere
1. Cree un nuevo TestDemo.java, marque el método de inicialización con la anotación @BeforeTest, finalice el procesamiento con @AfterTest y pruebe el método del objeto con @Test. Utilice @Parameters ("searchWord") para especificar que los valores de los parámetros pasados vienen desde la configuración en TestNG.xml
package com.test.testng;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
/**
* @Author chunmei deng
* @Description 测试Demo
* @Date 2021/3/21
*/
public class TestDemo {
WebDriver driver;
@BeforeTest
public void init() {
String url = "http://www.baidu.com";
//新建一个浏览器句柄
driver = new Brower().firefox();
//driver = (WebDriver) new FirefoxDriver();
//打开URL
driver.get(url);
}
@Test
@Parameters("searchWord")
public void search(String searchWord) throws InterruptedException {
//输入搜索字符串
driver.findElement(By.xpath("//*[@id=\"kw\"]")).sendKeys(searchWord);
//点击[百度一下]按钮
driver.findElement(By.xpath("//*[@id=\"su\"]")).click();
Thread.sleep(2000);
}
@AfterTest
public void teardown() {
driver.quit();
}
}
Cree un nuevo TestNG.xml y configure la prueba.
1. El contenido es el siguiente.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Test Of TestNG">
<test verbose="2" name="百度搜索">
<parameter name="searchWord" value=“淘宝" />
<classes>
<class name="com.test.testng.TestDemo">
<methods>
<include name="search" />
</methods>
</class>
</classes>
</test>
</suite>
Ejecute el programa
1. Ejecute TestNG.xml
2. El efecto de ejecución es el siguiente
para generar un informe de prueba
1. En la configuración en ejecución, marque Usar informadores predeterminados y los resultados de la ejecución generarán automáticamente un informe.