我看过很多关于使用窗口句柄处理弹出窗口的帖子。 但是如何使用单击按钮时打开的浏览器 -
<button class="power_buy_now_button" type="button">
</button>
我试图获得窗口句柄,但每次遇到变化的字符串时,都会出现类似的事情 - “8c5f028e-e7cc-4d0f-afe4-983bb119391e”
新浏览器甚至没有关联的标题。更多我不知道如何使用title来控制新浏览器。然后在某些时候我必须将控制权带回第一个浏览器。
答案 0 :(得分: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);
答案 1 :(得分:0)
我最终选择了第二个手柄并点击它。这种方法有效,我希望我也可以控制回主窗口。