RemoteWebDriver

This commit is contained in:
Guillem Hernandez Sola
2026-06-17 11:18:16 +02:00
parent f414cf60f5
commit 023c761bcf
3 changed files with 41 additions and 7 deletions

View File

@@ -4,9 +4,9 @@ import java.net.URL;
import java.time.Duration; import java.time.Duration;
import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.edge.EdgeOptions;
import org.openqa.selenium.firefox.FirefoxOptions; import org.openqa.selenium.firefox.FirefoxOptions;
import org.openqa.selenium.remote.RemoteWebDriver; import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.safari.SafariOptions;
import org.testng.annotations.AfterClass; import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeClass;
@@ -16,16 +16,14 @@ public class BaseRemoteWebDriverTest {
public void setUp() throws Exception { public void setUp() throws Exception {
String browser = System.getProperty("browser"); String browser = System.getProperty("browser");
// Extraemos la URL para mantener el código DRY (Don't Repeat Yourself) // Extraemos la URL para mantener el código DRY (Don't Repeat Yourself)
URL gridUrl = new URL("http://0.0.0.0:4444/wd/hub"); URL gridUrl = new URL("http://54.38.78.222:4444/wd/hub");
if (browser != null && browser.equalsIgnoreCase("chrome")) { if (browser != null && browser.equalsIgnoreCase("chrome")) {
ChromeOptions options = new ChromeOptions(); ChromeOptions options = new ChromeOptions();
driver = new RemoteWebDriver(gridUrl, options); driver = new RemoteWebDriver(gridUrl, options);
} else if (browser != null && browser.equalsIgnoreCase("safari")) { } else if (browser != null && browser.equalsIgnoreCase("edge")) {
SafariOptions options = new SafariOptions(); EdgeOptions options = new EdgeOptions();
// Aquí podrías añadir configuraciones específicas si lo necesitas
// options.setUseTechnologyPreview(true);
driver = new RemoteWebDriver(gridUrl, options); driver = new RemoteWebDriver(gridUrl, options);
} else { } else {
@@ -33,7 +31,6 @@ public class BaseRemoteWebDriverTest {
FirefoxOptions options = new FirefoxOptions(); FirefoxOptions options = new FirefoxOptions();
driver = new RemoteWebDriver(gridUrl, options); driver = new RemoteWebDriver(gridUrl, options);
} }
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(30)); driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(30));
} }

View File

@@ -0,0 +1,34 @@
package com.agile611.testng.webdriver;
import java.time.Duration;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import static org.testng.Assert.assertTrue;
import org.testng.annotations.Test;
public class DuckDuckGoRemoteTest extends BaseRemoteWebDriverTest {
@FindBy(id = "searchbox_input")
public WebElement searchBox;
@FindBy(className = "react-results--main")
public WebElement resultsList;
public void waitPageToLoad(RemoteWebDriver driver, long secondsTimeout, WebElement webElement){
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(secondsTimeout));
wait.until(ExpectedConditions.elementToBeClickable(webElement));
}
@Test
public void testUntitledTestCase() throws Exception {
driver.get("https://duckduckgo.com/");
waitPageToLoad(driver, 10, searchBox);
searchBox.sendKeys("pizza hawaiana");
searchBox.submit();
waitPageToLoad(driver, 10, resultsList);
assertTrue(resultsList.isDisplayed());
}
}

View File

@@ -18,6 +18,7 @@ services:
- SE_EVENT_BUS_HOST=selenium-hub - SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442 - SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443 - SE_EVENT_BUS_SUBSCRIBE_PORT=4443
- VNC_NO_PASSWORD=1
restart: unless-stopped restart: unless-stopped
firefox-node: firefox-node:
@@ -30,6 +31,7 @@ services:
- SE_EVENT_BUS_HOST=selenium-hub - SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442 - SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443 - SE_EVENT_BUS_SUBSCRIBE_PORT=4443
- VNC_NO_PASSWORD=1
restart: unless-stopped restart: unless-stopped
edge-node: edge-node:
@@ -42,4 +44,5 @@ services:
- SE_EVENT_BUS_HOST=selenium-hub - SE_EVENT_BUS_HOST=selenium-hub
- SE_EVENT_BUS_PUBLISH_PORT=4442 - SE_EVENT_BUS_PUBLISH_PORT=4442
- SE_EVENT_BUS_SUBSCRIBE_PORT=4443 - SE_EVENT_BUS_SUBSCRIBE_PORT=4443
- VNC_NO_PASSWORD=1
restart: unless-stopped restart: unless-stopped