-
-
Save Albertoimpl/4a2d350211201259c1afa079571fc16e to your computer and use it in GitHub Desktop.
Dead-simple cross-browser testing with Selenium and JUnit 5 parameterized tests
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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() ); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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