我见过不少文章谈论使用窗口句柄的弹出窗口的工作。 但如何用一个按钮按下时打开浏览器中运行 -WebDriver + swtich到另一个浏览器
我试图让窗口句柄但每次我遇到一个改变字符串的时候,有些东西一样 - “8c5f028e-e7cc-4d0f- afe4-983bb119391e“
甚至没有与新浏览器相关的标题。更多结束我不确定我将如何使用标题将控制权带到新的浏览器。然后在某些时候,我必须将控制权交还给第一个浏览器。
我见过不少文章谈论使用窗口句柄的弹出窗口的工作。 但如何用一个按钮按下时打开浏览器中运行 -WebDriver + swtich到另一个浏览器
我试图让窗口句柄但每次我遇到一个改变字符串的时候,有些东西一样 - “8c5f028e-e7cc-4d0f- afe4-983bb119391e“
甚至没有与新浏览器相关的标题。更多结束我不确定我将如何使用标题将控制权带到新的浏览器。然后在某些时候,我必须将控制权交还给第一个浏览器。
最好的办法是做类似如下:
// This code assumes you start with only one browser window in your test.
// If you have more than one browser window, your code will be more complex.
string originalHandle = driver.GetWindowHandle();
driver.FindElement(By.ClassName("power_buy_now_button")).Click();
// May need to wait for window handles collection to have a .Count of 2,
// as clicks are asynchronous.
string popupHandle = string.Empty;
ReadOnlyCollection<string> windowHandles = driver.GetWindowHandles();
foreach (string handle in windowHandles)
{
if (handle != originalHandle)
{
popupHandle = handle;
break;
}
}
driver.SwitchTo().Window(popupHandle);
// Do stuff in the popup window, eventually closing it with driver.Close()
driver.SwitchTo().Window(originalHandle);
我最终选择了第二个手柄,然后点击它。这种方法的工作原理,我希望我也能够控制回主窗口。
是否有这个问题的任何接受者? – Tarun 2011-03-31 17:31:20