Skip to content

Instantly share code, notes, and snippets.

@Albertoimpl
Forked from beatngu13/CrossBrowserTest.java
Created October 17, 2018 10:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Albertoimpl/4a2d350211201259c1afa079571fc16e to your computer and use it in GitHub Desktop.
Save Albertoimpl/4a2d350211201259c1afa079571fc16e to your computer and use it in GitHub Desktop.
Dead-simple cross-browser testing with Selenium and JUnit 5 parameterized tests
package my.package;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import org.openqa.selenium.WebDriver;
class CrossBrowserTest {
@ParameterizedTest
@MethodSource( "my.package.WebDriverFactory#drivers" )
void crossBrowserTest( final WebDriver driver ) {
System.out.println( "Hello via " + driver.getClass().getSimpleName() );
}
}
package my.package;
import java.util.Arrays;
import java.util.stream.Stream;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class WebDriverFactory {
enum Driver {
CHROME,
FIREFOX
// add more drivers
}
public static WebDriver driver( final Driver driver ) {
switch ( driver ) {
case CHROME:
return new ChromeDriver();
case FIREFOX:
return new FirefoxDriver();
default:
throw new IllegalArgumentException( "No \"" + driver + "\" driver available." );
}
}
public static Stream<WebDriver> drivers() {
return Arrays.stream( Driver.values() ).map( WebDriverFactory::driver );
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment