当前位置: 首页 > 知识库问答 >
问题:

无法使用Selenium Webdriver使用switchTo()切换到新窗口

诸超
2023-03-14

我一直在寻找这个问题的答案。我正在IE8中使用Selenium Webdriver和C#进行测试。在测试的某一点上,我需要单击一个按钮,然后打开一个新的应用程序窗口,其中包含需要填写的表单以继续测试。

我试过:

driver.switchTo().Window(driver.WindowHandles[0]);
driver.switchTo().Window(driver.WindowHandles[1]); //this one usually returns and error
driver.switchTo().Window(driver.WindowHandles.Last());
foreach(String handle in driver.WindowHandles)
{
     driver.switchTo().Window(handle);
     //do things here
}
string currentWindow = driver.CurrentWindowHandle;
PopupWindowFinder finder = new PopupWindowFinder(driver);
string popWindow = finder.Click(driver.FindElementById("Element"));
driver.SwitchTo().Window(popWindow);

所以应该点击开始弹出事件的元素,然后开关应该把它放在弹出窗口上,这样我就可以继续测试了。现在的问题是。当finder单击元素时,我正在测试的应用程序创建一个弹出窗口,然后关闭该弹出窗口,然后出现另一个弹出窗口,然后关闭该弹出窗口,最后出现我需要测试的实际应用程序,它要么是监视器上的当前焦点,要么是启动所有这些的初始页面后面的焦点。

那么我如何才能到达我需要测试的应用程序窗口呢?我试图切换到不同的弹出窗口,似乎试图跳转到应用程序窗口,但没有工作。提前致谢

共有1个答案

昌乐
2023-03-14

这可能会有帮助,它很有魅力:

IJavaScriptExecutor js = (IJavaScriptExecutor)driver;

//To open new tab
js.ExecuteScript("window.open()");
ArrayList tabs = new ArrayList(driver.WindowHandles);

//Switch driver to new tab
driver.SwitchTo().Window(driver.WindowHandles[1]);

//Close new tab
driver.Close();

//Switch driver to old tab
driver.SwitchTo().Window(driver.WindowHandles[0]);
 类似资料:
  • 问题内容: 寻找有关如何获得新的“弹出”窗口的帮助,该窗口在单击“登录”按钮后触发显示。 我能够到达显示窗口的时间,但是我不相信我当前用来获取窗口“句柄”的代码是否正常运行。我的情况有所不同,因为我在页面内使用量角器,但是出现的新窗口不是基于角度的,因此当我在该窗口中时,我必须切换为仅使用Selenium WebDriver。(任何人都不知道这种方法是否有问题?) 在下面,您可以找到我用来创建se

  • 问题内容: 寻找有关如何获得新的“弹出”窗口的帮助,该窗口在单击“登录”按钮后触发显示。 我能够到达显示窗口的时间,但是我不相信我当前用来获取窗口“句柄”的代码是否正常运行。我的情况有所不同,因为我在页面内使用量角器,但是出现的新窗口不是基于角度的,因此当我在该窗口中时,必须切换为仅使用Selenium WebDriver。(任何人都不知道这种方法是否有问题?) 在下面,您可以找到我用来创建sel

  • 我正在测试一个包含多个webview/页面的webview应用程序。为了获得webviews,我做了以下工作: 它返回一个窗口索引数组,这些索引数组类似于

  • 我已经编写了一个Ruby脚本来自动化使用IE的一些用户操作。我正在为IE使用Selenium Web驱动程序。下面是我的代码。 在点击一个按钮后,会打开一个新页面。现在,当我尝试切换到新窗口时,我得到以下错误。 我试着通过修改防火墙和为端口5555添加规则来解决这个错误。即便如此,问题仍然存在。我发现了一些关于这方面的问题,但大多数都与Java或.NET有关。如何解决此错误?有人能给我指个正确的方

  • 我正在IE上测试。单击后,我切换到子窗口,但无法返回父窗口,出现错误“窗口已关闭”。

  • 问题内容: 也许这实际上不是我遇到的问题,但是似乎当我“单击_链接”与target =“ _ blank”的链接时,会话会将焦点集中在当前窗口上。 因此,我要么希望能够切换到新窗口,要么就忽略_blank属性-本质上,我只是希望它实际转到链接所指示的页面,因此我可以确保它是正确的页面。 我使用webkit和selenium驱动程序。 到目前为止,我已经提交了我的发现。一个更彻底的答案是极大的赞赏。