44
55package play .test ;
66
7- import com .codeborne .selenide .Configuration ;
8- import com .codeborne .selenide .WebDriverRunner ;
7+ import com .codeborne .selenide .SelenideConfig ;
8+ import com .codeborne .selenide .SelenideDriver ;
9+ import com .codeborne .selenide .SelenideElement ;
910import java .time .Duration ;
1011import java .util .function .Function ;
1112import org .openqa .selenium .WebDriver ;
1718 */
1819public class TestBrowser {
1920
21+ private SelenideDriver driver ;
22+
2023 /**
2124 * A test browser (Using Selenium WebDriver) with the Selenide API
2225 * (https://github.com/selenide/selenide).
@@ -37,8 +40,38 @@ public TestBrowser(Class<? extends WebDriver> webDriver, String baseUrl) throws
3740 * @param baseUrl The base url to use for relative requests.
3841 */
3942 public TestBrowser (WebDriver webDriver , String baseUrl ) {
40- WebDriverRunner .setWebDriver (webDriver ); // super.initFluent(webDriver);
41- Configuration .baseUrl = baseUrl ; // super.getConfiguration().setBaseUrl(baseUrl);
43+ SelenideConfig config = new SelenideConfig ();
44+ config .baseUrl (baseUrl );
45+ driver = new SelenideDriver (config , webDriver , null );
46+ }
47+
48+ public void open (String relativeOrAbsoluteUrl ) {
49+ driver .open (relativeOrAbsoluteUrl );
50+ }
51+
52+ public void goTo (String relativeOrAbsoluteUrl ) {
53+ open (relativeOrAbsoluteUrl );
54+ }
55+
56+ public String source () {
57+ return driver .source ();
58+ }
59+
60+ public String pageSource () {
61+ return source ();
62+ }
63+
64+ public SelenideElement el (String cssSelector ) {
65+ return driver .find (cssSelector );
66+ }
67+
68+ public SelenideElement $ (String cssSelector ) {
69+ return el (cssSelector );
70+ }
71+
72+ public String url () {
73+ // return the relative url
74+ return driver .url ().substring (driver .config ().baseUrl ().length () + 1 );
4275 }
4376
4477 /**
@@ -47,7 +80,7 @@ public TestBrowser(WebDriver webDriver, String baseUrl) {
4780 * @return the webdriver contained in a fluent wait.
4881 */
4982 public FluentWait <WebDriver > fluentWait () {
50- return new FluentWait <>(WebDriverRunner .getWebDriver ());
83+ return new FluentWait <>(driver .getWebDriver ());
5184 }
5285
5386 /**
@@ -90,14 +123,15 @@ public <T> T waitUntil(Function<WebDriver, T> f) {
90123 * @return the web driver options.
91124 */
92125 public WebDriver .Options manage () {
93- return WebDriverRunner .getWebDriver ().manage ();
126+ return driver .getWebDriver ().manage ();
94127 }
95128
96129 /** Quits and releases the {@link WebDriver} */
97130 void quit () {
98- final WebDriver driver = WebDriverRunner .getWebDriver ();
99- if (driver != null ) {
100- driver .quit ();
131+ // TODO siehe dprecation comment in WebDriverRunner.closeWebDriver
132+ final WebDriver webDriver = driver .getWebDriver ();
133+ if (webDriver != null ) {
134+ webDriver .quit ();
101135 }
102136 // releaseFluent();
103137 }
0 commit comments