如何将我的 Selenium 代码更改为 HtmlUnit
How to change my Selenium code to HtmlUnit
我有下面的 selinium 代码,它工作正常。我想要的是将此代码转换为 HtmlUnit。我可以像 WebDriver driver = new HtmlUnitDriver();
这样使用 HtmlUnitDriver
我想使用纯 HtmlUnit。在我的 selinium 代码下面是一个尝试失败的 HtmlUnit 代码。
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]");
谁能给我举个例子。 //在这里,我如何传递新打开的 WINDOWS 就像我在 SELENIUM 中那样 **Set windows = driver.getWindowHandles();列表 windowsH = new ArrayList<>(windows);
driver.switchTo().window(windowsH.get(1)); **
您可以向 WebClient 询问当前 windows
的列表
webClient.getWebWindows()
然后您可以询问 Windows 之一来获取包含页面。
getEnclosedPage()
通常你必须将页面转换为HtmlPage,然后你才能继续页面。
顺便说一句 - 您的代码中存在重大错误
webClient.waitForBackgroundJavaScript(30);
不是一个选项;此调用等待脚本在您调用时完成。或者换句话说,如果触发了一些异步 js,则必须在某些操作(例如 click())之后放置此调用以等待 js。
我有下面的 selinium 代码,它工作正常。我想要的是将此代码转换为 HtmlUnit。我可以像 WebDriver driver = new HtmlUnitDriver();
这样使用 HtmlUnitDriver我想使用纯 HtmlUnit。在我的 selinium 代码下面是一个尝试失败的 HtmlUnit 代码。
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]");
谁能给我举个例子。 //在这里,我如何传递新打开的 WINDOWS 就像我在 SELENIUM 中那样 **Set windows = driver.getWindowHandles();列表 windowsH = new ArrayList<>(windows); driver.switchTo().window(windowsH.get(1)); **
您可以向 WebClient 询问当前 windows
的列表webClient.getWebWindows()
然后您可以询问 Windows 之一来获取包含页面。
getEnclosedPage()
通常你必须将页面转换为HtmlPage,然后你才能继续页面。
顺便说一句 - 您的代码中存在重大错误
webClient.waitForBackgroundJavaScript(30);
不是一个选项;此调用等待脚本在您调用时完成。或者换句话说,如果触发了一些异步 js,则必须在某些操作(例如 click())之后放置此调用以等待 js。