我正在尝试使用AjaxForm登录到一个网站。我设法整理了表格并到达了所需按钮的xpath,尽管在我调用#click时出现了以下错误:
EcmaError: lineNumber=[193] column=[0] lineSource=[<no source>] name=[ReferenceError] sourceName=[script in https://test.paypo.com/Account/Login?ReturnUrl=%2FHome%2FStart from (177, 32) to (221, 10)]
message=[ReferenceError: "Paypo" is not defined.
(script in https://test.paypo.com/Account/Login?ReturnUrl=%2FHome%2FStart from (177, 32) to (221, 10)#193)]
com.gargoylesoftware.htmlunit.ScriptException: ReferenceError: "Paypo" is not defined. (script in https://test.paypo.com/Account/Login?ReturnUrl=%2FHome%2FStart from (177, 32) to (221, 10)#193)
老实说,我对如何解决这个问题一无所知。重要的是,我无权访问网站的源代码,实际的网站日志记录工作得很好。 我尝试使用任何一种BrowserVersion和不同的HtmlUnit版本...
当前代码:
final HtmlPage thePage = ((HtmlPage) page);
final HtmlButtonInput button = (HtmlButtonInput) thePage.getByXPath("//input[@type='button']").get(0);
webClient.getOptions().setThrowExceptionOnScriptError(true);
final HtmlPage newPage = button.click();
调用#click时会引发错误!
有任何线索吗?拜托!
答案 0 :(得分:0)
好,对这段代码做了简短的检查:
final String url = "https://test.paypo.com/Account/Login?ReturnUrl=%2FHome%2FStart";
try (final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_60)) {
HtmlPage page = webClient.getPage(url);
}
运行此操作会产生很多错误;第一个是
com.gargoylesoftware.htmlunit.ScriptException: identifier is a reserved word: class (https://test.paypo.com/bundles/SharedJS?v=qrYYsvxJCv4nRnx8xzi1sMLBQPQlIPteJjoj8eCO1go1#7)
这是什么意思?
该页面包含来自URL https://test.paypo.com/bundles/SharedJS?v=qrYYsvxJCv4nRnx8xzi1sMLBQPQlIPteJjoj8eCO1go1的一些js代码,此代码存在问题。详细地讲,该代码使用了javascript“类”语言功能,并且HtmlUnit(最后是Rhino)在当前版本中不支持此语法。
因此,此外部资源中的javascript无法“编译”,因此该页面上的其他javascript无法使用
最后这会导致您面临错误。