0

我已经看到无数关于使用窗口句柄处理弹出窗口的帖子。但是如何使用单击按钮时打开的浏览器 -

<button class="power_buy_now_button" type="button"> 
</button>

我试图获取窗口句柄,但每次我遇到一个变化的字符串,比如 - “8c5f028e-e7cc-4d0f-afe4-983bb119391e”

甚至没有与新浏览器相关的标题。此外,我不确定如何使用标题来控制新浏览器。然后在某个时候,我必须将控制权带回第一个浏览器。

4

2 回答 2

4

您最好的选择是执行以下操作:

// 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);
于 2011-04-13T19:38:00.183 回答
0

我最终选择了第二个手柄并单击它。这种方法有效,我希望我也能够将控制权返回到主窗口。

于 2011-03-31T18:44:51.540 回答