Grails + selenium-rc - 提交AJAX表单

时间:2011-12-07 20:45:34

标签: ajax grails selenium automated-tests

我在测试帐户创建过程时遇到问题。这是我得到的错误:

Object [object HTMLIFrameElement] has no method 'getCurrentWindow'
com.thoughtworks.selenium.SeleniumException: Object [object HTMLIFrameElement] has no method 'getCurrentWindow'
    at com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java:97)
    at com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java:91)
    at com.thoughtworks.selenium.DefaultSelenium.waitForPageToLoad(DefaultSelenium.java:635)
    at com.thoughtworks.selenium.Selenium$waitForPageToLoad$0.call(Unknown Source)
    at grails.plugins.selenium.SeleniumWrapper.waitForPageToLoad(SeleniumWrapper.groovy)
    at com.thoughtworks.selenium.Selenium$waitForPageToLoad.call(Unknown Source)
    at grails.plugins.selenium.meta.AndWaitDynamicMethod.invoke(AndWaitDynamicMethod.groovy:33)
    at grails.plugins.selenium.SeleniumWrapper.methodMissing(SeleniumWrapper.groovy:125)
    at tokenadmin.SignUpTests.testManualSignUp(SignUpTests.groovy:33)

以下是截图:

enter image description here

以及相关代码的一部分:

    selenium.waitForElementPresent("css=#registerForm");
    selenium.type("name=name", "selenium test 1");
    selenium.type("name=email", emailAddress);
    selenium.type("css=input[tabindex=\"13\"]", "123123");
    selenium.type("name=password1", "123123");
    selenium.type("css=input[tabindex=\"14\"]", "123123");
    selenium.type("name=password2", "123123");
    selenium.submitAndWait("css=#registerForm")
    assertTrue(selenium.isTextPresent("Please confirm your e-mail address"));

任何想法该怎么做?

更新:

我将所有内容更改为localhost:8080,然后它突然开始工作了。不知道为什么会这样。

2 个答案:

答案 0 :(得分:1)

将项目网址更改为localhost:8080后,它开始工作

答案 1 :(得分:0)

由于Javascript安全规则,您无法做到这一点。一个脚本 在localhost上只能访问基于localhost的框架。