有一个关于Selenium WebDriver的问题是一个场景
答案 0 :(得分:0)
这些是你应该采取的步骤。
switchTo()
新打开的窗口句柄,switchTo()
iframe
iframe
switchTo()
新打开的窗口示例可能如下所示。 注意:C#代码
public void PopupWindowHandle()
{
//logged into application
//get current window handle
string prentWindowHandle = Driver.CurrentWindowHandle;
//click should generate a new tab
Driver.FindElement(By.Id("id")).Click();
//get window handle counts. In your case should be 2
List<string> windowHandles = Driver.WindowHandles.ToList();
//switchTo newly opened window handle
foreach (string handle in windowHandles)
{
if (handle != prentWindowHandle)
{
Driver.SwitchTo().Window(handle);
//switch focus into iframe
Driver.SwitchTo().Frame(Driver.FindElement(By.CssSelector("Iframe Selector")));
//click should generate another window
Driver.FindElement(By.Id("id")).Click();
//should be 2 in total
List<string> newHandles = Driver.WindowHandles.ToList();
foreach (string newHandle in newHandles)
{
if (newHandle != handle)
{
Driver.SwitchTo().Window(newHandle);
//do some work
Driver.Close();
Driver.SwitchTo().Window(handle);
break;
}
}
Driver.Close();
Driver.SwitchTo().Window(prentWindowHandle);
break;
}
}
}
答案 1 :(得分:0)
我猜你没有使用chrome。:) 通常,webdriver强制浏览器打开一个新窗口而不是一个选项卡,通过切换窗口处理更容易。像IE和Firefox一样,但chrome会打开一个新选项卡而不是一个新窗口,它仍然支持切换窗口。我是如何找到的,试一试。