我正在使用Selenium RC进行一些Web自动化。我是Selenium RC的新手,在进行自动化时遇到了问题(可能是学习曲线)。我正在使用带有Eclipse IDE的java来编写selenium RC。
场景:我有一个带链接的屏幕。点击时,它会打开一个包含大量名称(网格)的查找窗口。现在我必须通过直接单击任何行/记录从网格中选择一个值。或者我可以使用搜索选项并选择记录。问题是
@ 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>
如果我错了,请纠正我。如果有人给我更多建议,我会感激。
答案 0 :(得分:1)
如果不访问您的DOM,我建议您使用IDE进行录制,并将记录的操作中的正确上下文调整为RC。 IDE在捕获弹出窗口和模态的上下文方面做得不错。
捕获后,这里有一些陷阱:
selectWindow()
和selectFrame()
答案 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();