Click() 在 Fitnesse 的 HtmlUnitDriver 中不起作用的解决方法?
我有一个运行 Fitnesse 测试的 jUnit 测试来测试一些网页。在开发模式下,我使用 FirefoxDriver,所有测试都运行良好,网页按预期弹出。
当我尝试以自动化模式(即使用 Maven)运行测试时,测试惨败。你们中有人对可能出现的问题或解决方法有什么建议吗?
相关代码:
- 网页:
<form method="get" action="/someAction.do" name="my_form">
<input id="fetch_new_submit" class="ui-button ui-widget ui-state-default ui-corner-all" type="submit" onclick="showWaitMsg()" value="Fetch new orders" role="button">
</form>
夹具代码:
SomeFixture 类...public boolean pressSubmitButton(String buttonText) { 尝试 { 列表
按钮 = getWebDriver().findElements(By.tagName("input")); for (WebElement 按钮: 按钮) { if (button.getAttribute("value").equals(buttonText)) { System.out.println("找到按钮'" + button.getAttribute("value") + "'."); 按钮.单击(); //这里 返回真; } } } catch (异常 e) { LOG.debug("发生了一些错误,e); 返回假; } LOG.debug("没有找到按钮"); 返回假; }
注意:
- getWebDriver() 返回 FirefoxDriver 工作正常。
- getWebDriver 返回新的 HtmlUnitDriver(true) 即启用了 javascript,忽略此处的button.click()。 Button.submit() 在这里也被忽略,button.sendKeys("\n") 抛出一个元素“未启用”错误。
- 我们使用版本 2.0rc2
我们的自动化测试不能使用 FirefoxDriver。此问题有任何已知的解决方法吗?
I have a jUnit test running a Fitnesse test that tests some web pages. When in development mode, I use the FirefoxDriver and all tests run great, with web pages popping up as expected.
When I try to run the test in an automated mode, i.e. using Maven, the tests fail miserably. Do any of you have any suggestions of what might be wrong or a workaround?
The relevant code:
- The web page:
<form method="get" action="/someAction.do" name="my_form">
<input id="fetch_new_submit" class="ui-button ui-widget ui-state-default ui-corner-all" type="submit" onclick="showWaitMsg()" value="Fetch new orders" role="button">
</form>
The fixturecode:
class SomeFixture...public boolean pressSubmitButton(String buttonText) { try { List<WebElement> buttons = getWebDriver().findElements(By.tagName("input")); for (WebElement button : buttons) { if (button.getAttribute("value").equals(buttonText)) { System.out.println("found button '" + button.getAttribute("value") + "'."); button.click(); //HERE return true; } } } catch (Exception e) { LOG.debug("Some error occured, e); return false; } LOG.debug("Did not find the button"); return false; }
Note:
- getWebDriver() returning FirefoxDriver works fine.
- getWebDriver returning new HtmlUnitDriver(true) i.e. with javascript enabled, ignores the button.click() at HERE. Button.submit() is also ignored here and button.sendKeys("\n") throws an element 'not enabled'-error.
- we use version 2.0rc2
Our automated tests can't use FirefoxDriver. Are there any known workarounds for this issue?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
进一步测试和使用前沿技术,即快照,给了我一些目前有效的东西。
即:
- 将 Selenium 升级到 2.0rc3
- 将 htmlunit 升级到 2.9 SNAPSHOT !!!
还有一些更多的实验:
Firefox 版本现在适用于提交类型按钮,但不适用于 javascript 操作。这也可能是由于我在使用 Firefox 4.0.1 时使用了 Firefox_3_6 版本驱动程序。浏览器。
IE version_8 挂在 click() 上。
但是,普通的 HtmlUnitDriver() 可以工作!
Further testing and usage of bleeding edge, i.e. snapshots gave me something that works for now.
That is:
- upgraded Selenium to 2.0rc3
- upgraded htmlunit to 2.9 SNAPSHOT !!!
And some more experimenting around:
The Firefox version now works for submit type buttons but fails for javascript actions. This could also be due to me using Firefox_3_6 version driver while using Firefox 4.0.1. browser.
The IE version_8 hangs on click().
But, the plain HtmlUnitDriver() works!