首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在java上的get()之前在Selenium WebDriver上执行WebDriver

在java上的get()之前在Selenium WebDriver上执行WebDriver
EN

Stack Overflow用户
提问于 2019-07-10 07:51:28
回答 1查看 341关注 0票数 1

我试图使用Java中的selenium访问网页。问题是网站给了我一个错误的Exception in thread "main" org.openqa.selenium.WebDriverException: com.gargoylesoftware.htmlunit.ScriptException: ReferenceError: "require" is not defined.

我询问了前端开发,并告诉我应该在加载页面之前尝试加载一个javascript。他提到的脚本是require.js,我在https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.js上找到的

我正在使用htmlunit-driver 2.28,我注意到当我初始化驱动程序时

HtmlUnitDriver driver =new HtmlUnitDriver(true);

我有个选择

driver.executeScript(script, args)

WebDriver driver =new HtmlUnitDriver(true);上不可用的

我想我可以绕过它(因为我的代码是为其他使用WebDriver的项目生产的)和使用HtmlUnitDriver,但是我不知道如何使用executeScript来传递脚本的url。

我怎样才能把这个注射到我的WebDriver?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-10 11:31:50

您必须定制由WebClient使用的HtmlUnitDriver一点。默认情况下,选项throwExceptionOnScriptError为true。但是,如果出现(未处理的)异常,所有浏览器都忽略了对javascrip的处理。如果我对您正确,那么如果使用真正的浏览器运行,您的页面也会抛出此异常;这意味着您必须

  1. throwExceptionOnScriptError的swith
  2. 与页面/js开发人员讨论代码质量。

样本代码:

代码语言:javascript
复制
WebDriver driver = new HtmlUnitDriver(true) {
    @Override
    protected WebClient modifyWebClient(WebClient client) {
        client.getOptions().setThrowExceptionOnScriptError(false);
        return client;
    }
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56965874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档