我正在使用selenium RC驱动程序进行JUnit测试我的应用程序。这是我想写的相关代码。它检查用户是否点击了链接,将它们带到正确的位置。
selenium.click("//td[@id='myLink']/a");
String myURL = selenium.getLocation();
但是,当webdriver模拟“点击”时,它会打开一个新窗口。所以现在我打开了第一个窗口,我想导航到的页面在一个单独的窗口中打开。现在,当我尝试获取URL时,selenium会抓取第一个URL,因此它无法通过测试用例。如何在同一窗口中打开页面?或者,或者,如何让selenium检查新窗口的URL?
编辑:还应该提一下,我的第一个和第二个窗口都有相同的标题,所以我认为我不能使用selenium.SelectWindow(Title);
。
答案 0 :(得分:0)
嗯,由于硒RC像它一样变幻无常,我找到了解决这个问题的方法。以下是我如何更改代码的简要概述:
String targetURL = selenium.getAttribute("//td[@id='myLink']/a@href");
selenium.openWindow(targetURL, "myNewWindow");
Thread.sleep(3000); //wait a few seconds for my page to load
selenium.selectWindow("myNewWindow");
selenium.getLocation();
//do my checks
selenium.selectWindow("originalWindowName");
所以我自己检索href,使用检索到的URL和我自己的自定义名称打开窗口。然后我将驱动程序的上下文切换到新窗口并执行我的检查。完成后,我将上下文切换回原始窗口,继续我的测试。