我正在尝试使用Selenium GUI(在Firefox中)记录测试。该应用程序使用图像作为超链接,如下所示:
<a class="mainheading" align="center" target="_blank" href="https://myapps.web.com/prepaid/customer/index.jsp">
<img width="256" height="57" border="0" alt="customer" src="images/customer.jpg"/>
</a>
现在,当我们点击上面的图片时,a href
标签会打开另一个窗口。一旦新窗口打开,我需要在该窗口中执行其余的测试。问题是当我记录测试时,Selenium GUI无法理解我正在执行的任何操作都在新窗口中。因此,即使它正确记录了操作,当我运行预先录制的测试时,我会收到一条错误消息,指出找不到该元素。我认为这是因为Selenium试图仅在原始窗口中找到元素(而不是在由于上面a href
而打开的新窗口中)。
我尝试使用Google,但我得到的解决方案与我上面的情况不符(即a href
打开新窗口而不是window.open
)。有人可以请一点建议吗?
谢谢。
答案 0 :(得分:1)
您可以像这样使用驱动程序窗口句柄:
// Get a list of window identities
List<string> windowIdentities = driver.WindowHandles.ToList();
// Switch control over to the other window
driver.SwitchTo().Window(windowIdentities[1]);
这是用C#编写的,但如果用不同的语言编写,它应该不会太大。如果这对您有用,请告诉我!
答案 1 :(得分:0)
在对其执行操作之前,您需要移动到新窗口。为此,如果使用webdriver,则可以使用switchTo.window,否则在ide中,应该有selectwindow移动到相应的窗口,然后在那里继续操作。