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

时间:2011-06-21 09:11:26

标签: java firefox click htmlunit fitnesse

我有一个运行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>
  • 灯具代码:
        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;
    }
    

注意:
- getWebDriver()返回FirefoxDriver工作正常 - getWebDriver返回新的HtmlUnitDriver(true),即启用了javascript,忽略了此处的button.click()。 Button.submit()也在这里被忽略,button.sendKeys(“\ n”)抛出一个元素'not enabled'-error。
- 我们使用版本2.0rc2

我们的自动化测试无法使用FirefoxDriver。这个问题是否有任何已知的解决方法?

1 个答案:

答案 0 :(得分:0)

进一步测试和使用出血边缘,即快照给了我一些现在可行的东西。

那是:
  - 将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版本_8在click()上挂起。

但是,普通的HtmlUnitDriver()可以工作!