Tengo el código sellinium a continuación y funciona bien. Lo que quiero es convertir este código para que esté en HtmlUnit. Puedo usar HtmlUnitDriver como WebDriver driver = new HtmlUnitDriver();
Quiero usar un HtmlUnit puro. Debajo de mi código sellinium hay un código HtmlUnit probado y fallido.
import java.util.logging.Logger; import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.StdErrLog; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.htmlunit.HtmlUnitDriver; import com.gargoylesoftware.htmlunit.BrowserVersion; public class SpribeDemoTesting { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver","path to chromedriver.exe"); driver = new ChromeDriver(); driver.manage().window().maximize(); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); WebDriverWait wait = new WebDriverWait(driver,30); driver.get("https://www.spribe.co/games/aviator"); htmlButton3 = (HtmlButton) htmlPage.getByXPath("//div[@class='modal-content']//button[1]");¿Puede alguien darme un ejemplo? //AQUÍ, ¿CÓMO PASO LAS VENTANAS RECIENTEMENTE ABIERTAS COMO HAGO ESTO EN SELENIO **Set windows = driver.getWindowHandles(); Lista ventanasH = new ArrayList<>(ventanas); driver.switchTo().window(windowsH.get(1)); **
Puede solicitar al WebClient la Lista de ventanas actuales
webClient.getWebWindows()y luego puede pedirle a uno de los Windows que obtenga la página que lo contiene.
getEnclosedPage()Por lo general, debe enviar la página a HtmlPage y luego puede continuar con la página.
Y por cierto, hay un error importante en su código
webClient.waitForBackgroundJavaScript(30);no es una opinión; esta llamada espera a que finalicen los scripts en el momento en que la llama. O, en otras palabras, debe realizar esta llamada después de alguna acción (por ejemplo, hacer clic en ()) para esperar el js si se activó algún js asíncrono.