如何在selenium中处理弹出/查找窗口

时间:2011-08-17 11:30:23

标签: selenium-rc

我正在使用Selenium RC进行一些Web自动化。我是Selenium RC的新手,在进行自动化时遇到了问题(可能是学习曲线)。我正在使用带有Eclipse IDE的java来编写selenium RC。

场景:我有一个带链接的屏幕。点击时,它会打开一个包含大量名称(网格)的查找窗口。现在我必须通过直接单击任何行/记录从网格中选择一个值。或者我可以使用搜索选项并选择记录。问题是

  1. 我录制的脚本没有响应弹出窗口。
  2. 在selenium中是否有“双击”命令。

  3. @ rs79 - 它对我不起作用。这是我的代码:

    selenium.click("link=eName");   //click the link to open the lookup window
    //lookup window
    selenium.focus("Associate"); <br>
    selenium.waitForPopUp("Associat", "20000");
    selenium.selectWindow("Associat");
    selenium.type("id=SearchTextBox", "xyz"); //Enter the text in search field of lookup
    selenium.click("id=SearchButton"); // click search button on lookup window <br>
    

    如果我错了,请纠正我。如果有人给我更多建议,我会感激。

3 个答案:

答案 0 :(得分:1)

如果不访问您的DOM,我建议您使用IDE进行录制,并将记录的操作中的正确上下文调整为RC。 IDE在捕获弹出窗口和模态的上下文方面做得不错。

捕获后,这里有一些陷阱:

  1. 对于iFrame,将捕获的帧ID更改为更通用的(css)定位器
  2. 警惕selectWindow()selectFrame()
  3. 之间的difference

答案 1 :(得分:0)

如果它的弹出窗口不是弹出窗口,那么你可以尝试使用firebug找到你想要的元素或记录。
现在复制它的xpath并在你的代码中使用它。

我遇到并解决了这个方法同样的问题,因为详细说明了来自fire bug的xpath并找到了正确的窗口。

在处理xpath后,请在启动时验证路径是否为//

由于

答案 2 :(得分:-1)

这将有助于处理Salesforce查找

 
Iterator it = windows.iterator();
String parentwindow =(String) it.next();
String childWindow =(String) it.next();

// Switch to parent window
driver.switchTo().window(childWindow);
MiscUtils.pauseForElementToBePresent(3000L);
driver.switchTo().frame("your frame NAME/ID");
MiscUtils.pauseForElementToBePresent(3000L);

// your step to perform on child page.
driver.findElement(By.linkText("123Test")).click();
MiscUtils.pauseForElementToBePresent(3000L);

//if popup is getting close automatically switch to parent window otherwise use "driver.quit();" to close popup
driver.switchTo().window(parentwindow);
driver.switchTo().defaultContent();