代码之家  ›  专栏  ›  技术社区  ›  Aidan_Mc_Donnell

点击链接杀死测试

  •  0
  • Aidan_Mc_Donnell  · 技术社区  · 14 年前

    以下命令

    selenium.click("link=Identify Awards");
    

    打开弹出窗口,但测试不继续

    我已经把

    selenium.waitForPopUp(null, "1500");
    selenium.windowFocus();
    selenium.selectPopUp("Search -- Webpage Dialog");
    

    在click命令无效后 该链接指向一个goes to a java函数。

    我知道这个命令点击链接、按钮、复选框或单选按钮。如果click操作导致加载一个新页面(就像链接通常所做的那样),则调用 waitForPageToLoad . 我认为 waitforPageToLoad 未注册弹出式加载

    更新

    我试了一下

    selenium.fireEvent("link=Identify Awards", "onClick");
    

    得到了以下信息

    弹出窗口在另一个域上这可能是原因吗?

    Exception in thread "Main Thread" org.openqa.selenium.ie.UnexpectedJavascriptExecutionException: Cannot execute script
    System info: os.name: 'Windows Vista', os.arch: 'x86', os.version: '6.1', java.version: '1.5.0_12'
    Driver info: driver.version: ie
        at org.openqa.selenium.ie.ErrorHandler.verifyErrorCode(ErrorHandler.java:70)
        at org.openqa.selenium.ie.InternetExplorerDriver.executeScript(InternetExplorerDriver.java:205)
        at org.openqa.selenium.internal.seleniumemulation.JavascriptLibrary.callEmbeddedSelenium(JavascriptLibrary.java:47)
        at org.openqa.selenium.internal.seleniumemulation.FireEvent.handleSeleneseCommand(FireEvent.java:35)
        at org.openqa.selenium.internal.seleniumemulation.FireEvent.handleSeleneseCommand(FireEvent.java:1)
        at org.openqa.selenium.internal.seleniumemulation.SeleneseCommand.apply(SeleneseCommand.java:33)
        at org.openqa.selenium.internal.seleniumemulation.Timer.run(Timer.java:47)
        at org.openqa.selenium.WebDriverCommandProcessor.execute(WebDriverCommandProcessor.java:277)
        at org.openqa.selenium.WebDriverCommandProcessor.doCommand(WebDriverCommandProcessor.java:209)
        at com.thoughtworks.selenium.DefaultSelenium.fireEvent(DefaultSelenium.java:201)
    
    2 回复  |  直到 8 年前
        1
  •  1
  •   Aliaksei Kliuchnikau poncius    13 年前

    使用 selenium.selectWindow 选择弹出菜单,然后使用 selenium.selectWindow(null) 选择基本窗口。你没有描述它是哪种弹出窗口。是一个确认框、一个框架、一个模型对话框或只是另一个窗口。硒对所有这些的治疗不同

        2
  •  1
  •   redrah    14 年前

    我发现,在某些情况下,当触发javascript(特别是selenium的click函数)时,不能正确调用elements onClick命令,这可能是您遇到的问题。

    如果是,请尝试使用以下命令显式启动onClick事件:

    selenium.fire_event("link=Identify Awards", "onClick")
    

    希望能有所帮助。