Click() 在 Fitnesse 的 HtmlUnitDriver 中不起作用的解决方法?

发布于 2024-11-16 07:47:14 字数 1280 浏览 2 评论 0原文

我有一个运行 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

脸赞 2024-11-23 07:47:14

进一步测试和使用前沿技术,即快照,给了我一些目前有效的东西。

即:
- 将 Selenium 升级到 2.0rc3
- 将 htmlunit 升级到 2.9 SNAPSHOT !!!

还有一些更多的实验:

final HtmlUnitDriver driver = new HtmlUnitDriver(BrowserVersion.FIREFOX_3_6);  

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:

final HtmlUnitDriver driver = new HtmlUnitDriver(BrowserVersion.FIREFOX_3_6);  

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!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文