javascript - Htmlunit 驱动程序与 Javascript 有问题

标签 javascript selenium selenium-webdriver htmlunit htmlunit-driver

我用 java 编写了一个 Selenium 测试,我用 FirefoxDriver 启动它,它在 Firefox 浏览器中运行良好。

然后我将 FirefoxDriver 替换为 HtmlunitDriver,如下所示:

driver = new FirefoxDriver();

driver = new HtmlUnitDriver(true);

但后来我得到了这个错误:

It's missing ';' Before an instruction (http://local.project/bundles/app/js/socket.js#1)

这是 socket.js 文件:

class SocketHandler {
    constructor(url) {
        this.url = url;
        this.session = null;
    }

    ....
}

我怀疑它不识别类声明。知道如何纠正吗?

最佳答案

您甚至不需要使用 PhantomJs。由于 PhantomJs 这些天没有那么多维护。您可以在 headless 模式下使用 chromedriver。

你只需要像下面这样添加 headless 选项:-

chromeOptions.addArguments("--headless");

请在下面找到完整的代码:

System.setProperty("webdriver.chrome.driver","D:\\Workspace\\JmeterWebdriverProject\\src\\lib\\chromedriver.exe");
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--headless");
chromeOptions.addArguments("--start-maximized");
WebDriver driver = new ChromeDriver(chromeOptions);
driver.get("https://google.com");

如果你仍然想使用 phantomjs。然后首先从以下位置下载 phantomjs 二进制文件:-

http://phantomjs.org/download.html

现在使用下面的代码:-

System.setProperty("phantomjs.binary.path","D:\\Workspace\\JmeterWebdriverProject\\src\\lib\\phantomjs\\phantomjs.exe");
DesiredCapabilities capabilities = null;
ArrayList<String> cliArgsCap = new ArrayList<String>();
capabilities = DesiredCapabilities.phantomjs();
cliArgsCap.add("--web-security=false");
cliArgsCap.add("--ssl-protocol=any");
cliArgsCap.add("--ignore-ssl-errors=true");
capabilities.setCapability("takesScreenshot", true);
capabilities.setJavascriptEnabled(true);
capabilities.setCapability(
PhantomJSDriverService.PHANTOMJS_CLI_ARGS, cliArgsCap);
capabilities.setCapability(
PhantomJSDriverService.PHANTOMJS_GHOSTDRIVER_CLI_ARGS,new String[] { "--logLevel=2" });
driver = new PhantomJSDriver(capabilities);
driver.get("https://www.google.co.in/");

希望对你有帮助:)

关于javascript - Htmlunit 驱动程序与 Javascript 有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45591873/

相关文章:

java - Selenium webdriver : Modifying navigator. webdriver 标志以防止 selenium 检测

java - Selenium - 在一页上混合复选框

javascript - 数字数组可以转化为函数数组吗?

javascript - 改变 jQuery UI 对话框的行为

java - Selenium - 为什么加载的 cookie 不能完全工作?

javascript - 如何结合execute_scipt和WebdriverWait

java - 如何等待 WebElement 出现在 DOM 中?

selenium - 为 WebDriver 测试禁用 Google Chrome 密码气泡

javascript - 如何整合多个语句

javascript - 大量重复的 if/else 语句的最大优化/代码减少是多少?