è possibile utilizzare il quadro WebDriver Extensions JUnitRunner
Ecco un test di esempio per googling "Ciao Mondo"
@RunWith(WebDriverRunner.class)
@Firefox
@Chrome
@InternetExplorer
public class WebDriverExtensionsExampleTest {
// Model
@FindBy(name = "q")
WebElement queryInput;
@FindBy(name = "btnG")
WebElement searchButton;
@FindBy(id = "search")
WebElement searchResult;
@Test
public void searchGoogleForHelloWorldTest() {
open("http://www.google.com");
assertCurrentUrlContains("google");
type("Hello World", queryInput);
click(searchButton);
waitFor(3, SECONDS);
assertTextContains("Hello World", searchResult);
}
}
solo assicurarsi di aggiungere il quadro WebDriver Extensions tra i tuoi Maven dipendenze pom.xml
<dependency>
<groupId>com.github.webdriverextensions</groupId>
<artifactId>webdriverextensions</artifactId>
<version>1.2.1</version>
</dependency>
I driver possono essere scaricati utilizzando il p plugin maven rovided. Aggiungi semplicemente
<plugin>
<groupId>com.github.webdriverextensions</groupId>
<artifactId>webdriverextensions-maven-plugin</artifactId>
<version>1.0.1</version>
<executions>
<execution>
<goals>
<goal>install-drivers</goal>
</goals>
</execution>
</executions>
<configuration>
<drivers>
<driver>
<name>internetexplorerdriver</name>
<version>2.44</version>
</driver>
<driver>
<name>chromedriver</name>
<version>2.12</version>
</driver>
</drivers>
</configuration>
</plugin>
al tuo pom.xml. Oppure, se preferisci scaricarli manualmente, annota semplicemente la classe di test con lo
annotazione che punta ai driver.
Si noti che l'esempio precedente utilizza metodi statici dalle estensioni del WebDriver Bot class per rendere più leggibile il test. Tuttavia non sei legato a usarli. Il precedente test riscritto in Selenium WebDriver sarebbe simile a questo
@Test
public void searchGoogleForHelloWorldTest() throws InterruptedException {
WebDriver driver = WebDriverExtensionsContext.getDriver();
driver.get("http://www.google.com");
assert driver.getCurrentUrl().contains("google");
queryInput.sendKeys("Hello World");
searchButton.click();
SECONDS.sleep(3);
assert searchResult.getText().contains("Hello World");
}
Ho automatizzato i miei casi di test per più browser con approccio Parametrato. Ho usato l'esempio menzionato a [link] (https://stackoverflow.com/questions/22051705/how-to-parameterize-junit-test-suite/27956177#27956177) – Knu8