提交表单时出现 HtmlUnit StackOverflowError

HtmlUnit StackOverflowError when submitting a form

我通常不会 post 这种问题,但这个问题让我抓狂。我正在使用 SeleniumWebDriver 填写表格并提交。我在我的计算机上执行此操作并且运行良好,但是当我将应用程序上传到 OpenShift 时,我在提交表单时收到 WhosebugError。这是堆栈跟踪:

[0m[31m04:29:06,529 ERROR [stderr] (Thread-110) Exception in thread "Thread-110" java.lang.WhosebugError
[0m[31m04:29:06,542 ERROR [stderr] (Thread-110)     at net.sourceforge.htmlunit.corejs.javascript.regexp.NativeRegExp.emitREBytecode(NativeRegExp.java:1311)
[0m[31m04:29:06,547 ERROR [stderr] (Thread-110)     at net.sourceforge.htmlunit.corejs.javascript.regexp.NativeRegExp.emitREBytecode(NativeRegExp.java:1281)
[0m[31m04:29:06,547 ERROR [stderr] (Thread-110)     at net.sourceforge.htmlunit.corejs.javascript.regexp.NativeRegExp.emitREBytecode(NativeRegExp.java:1286)
[0m[31m04:29:06,548 ERROR [stderr] (Thread-110)     at net.sourceforge.htmlunit.corejs.javascript.regexp.NativeRegExp.emitREBytecode(NativeRegExp.java:1286)
[0m[31m04:29:06,548 ERROR [stderr] (Thread-110)     at net.sourceforge.htmlunit.corejs.javascript.regexp.NativeRegExp.emitREBytecode(NativeRegExp.java:1286)
[0m[31m04:29:06,564 ERROR [stderr] (Thread-110)     at net.sourceforge.htmlunit.corejs.javascript.regexp.NativeRegExp.emitREBytecode(NativeRegExp.java:1286)

(他继续说了一会儿,但所有台词都是一样的...)

正如您从堆栈跟踪中看到的那样,我正在使用 HtmlUnit WebDriver。我用谷歌搜索了这个,但我没有找到任何人遇到我的确切问题,尽管 HtmlUnit 似乎经常出现 Whosebug 错误...

谁能告诉我这是错误还是我遗漏了什么?非常感谢任何帮助,谢谢!

编辑

这是我的代码:

HtmlUnitDriver driver = new HtmlUnitDriver(BrowserVersion.CHROME);
driver.setJavascriptEnabled(true);
driver.get(myUrl);
//Finds the fields of the login form and fills it. Also removes the Remember me checkbox.
    WebElement email = driver.findElement(By.id("email"));
    email.clear(); 
    email.sendKeys(username);

    WebElement rememberMe = driver.findElement(By.name("persistent"));
    if(rememberMe.isSelected())rememberMe.click();

    WebElement pass = driver.findElement(By.id("pass"));
    pass.clear();
    pass.sendKeys(pass);

    //HERE IS WHERE THE ERROR OCCURS:
    pass.submit();

除了提交之外,我还尝试从按钮手动获取输入并单击它,如下所示:

    WebElement button = driver.findElement(By.id("u_0_2"));
    button.click();

但问题完全一样...

小齿轮每个有 512MB RAM 和 1GB 磁盘 space,因此 运行 这样的 "resource intensive" 应用程序可能并不总是可行的,您可以考虑升级到中型或大型齿轮。

此外,尝试增加堆栈大小可能是一种选择,请参阅:How to increase the Java stack size?

您可以检查 Openshift Marketplace 以监控墨盒。