我目前正在使用Selenium + Cucumber + Internet Explorer自动化一个基于IBM Cognos平台的应用程序,并面临一些挑战。我需要这个小组的Maven帮助解决这些问题。
问题描述-单击页面上的链接时,将打开新浏览器。理想情况下,getWindowHandles()方法返回WebDriver打开的浏览器的正确计数。我们使用窗口句柄属性切换到第二个浏览器,将在第二个浏览器上执行进一步操作。GetWindowHandles返回值1,与WebDriver打开的浏览器数量无关。我尝试过以下方法-
1.单击()链接并尝试getWindowHandles()
1.键。在链接上输入& getWindowHandles()
1.链接上的发送键(“\0”)和getWindowHandles()
1.将鼠标悬停在链接上,单击链接并获取窗口句柄
1.双击链接并获取窗口句柄
1.使用发送键(keys.control +“t”)打开新选项卡,导航到URL和getWindowHandles()
1.使用发送键(keys.control +“n”)打开新的浏览器窗口,导航到URL和getWindowHandles()
使用的环境- selenium 网络驱动程序- 2.39.0 IEDriverServer. exe-Win32_2.39.0 Windows 7 Internet Explorer 8.0
注意-它在Firefox上运行良好,这个问题只发生在IE上。
3条答案
按热度按时间tv6aics11#
我也面临着同样的问题,但添加以下功能解决了我的问题.
以上功能需要添加到InternetExplorer中。希望它也能解决您的问题。您可能还需要修改注册表编辑器以使其工作。
vhipe2zx2#
当你访问父窗口,那么你应该提供一些延迟。这是我的错误,由于脚本没有运行。你可以试试这个代码。
5anewei63#
你能分辨出点击链接是打开一个新标签页还是一个新窗口吗?在新窗口中打开的链接和在新标签页中打开的链接是有区别的。
如果有多个窗口,driver. getWindowHandles()返回句柄列表,因此列表大小〉1。下面的代码演示了窗口之间的切换:
如果在同一个窗口中有多个选项卡,那么只有一个窗口句柄。因此,在窗口句柄之间切换会使控件保持在同一个选项卡中。
在本例中,使用Ctrl +\t(Ctrl + Tab)在选项卡之间切换对我很有效。
在同一个浏览器窗口中的选项卡之间切换的详细示例代码可以在这里找到:
http://design-interviews.blogspot.com/2014/11/switching-between-tabs-in-same-browser-window.html