gpt4 book ai didi

c# - Selenium webdriver 窗口处理 c# switchTo 失败

转载 作者:行者123 更新时间:2023-12-03 20:27:28 25 4
gpt4 key购买 nike

在测试过程中弹出 2 个窗口。

我的代码:

string BaseWindow = driver.CurrentWindowHandle;                 
ReadOnlyCollection<string> handles = driver.WindowHandles;

foreach(string handle in handles)
{
Boolean a = driver.SwitchTo().Window(handle).Url.Contains("Main");
if (a == true)
{
InitialSetting.driver.SwitchTo().Window(handle);
break;
}
}

我想切换到 url 包含“Main”的窗口。但是当测试运行时,它会在两个窗口之间不断切换并且不会停止。

我调试并找到了 foreachboolean a时没有收支平衡是真的。

我该如何解决这个问题?

最佳答案

//switch to new window 
driver.FindElement(By.Id("link")).Click();

//wait for new window to open
Thread.Sleep(2000);

//get the current window handles
string popupHandle = string.Empty;
ReadOnlyCollection<string> windowHandles = driver.WindowHandles;

foreach (string handle in windowHandles)
{
if (handle != existingWindowHandle)
{
popupHandle = handle; break;
}
}

//switch to new window
driver.SwitchTo().Window(popupHandle);

//check for element on new page
webElement = driver.FindElement(By.Id("four04msg"));
if(webElement.Text == "THE CONTENT YOU REQUESTED COULDN’T BE FOUND...")
{
return false;
}
else
{
return true;
}

//close the new window to navigate to the previous one
driver.close();

//switch back to original window
driver.SwitchTo().Window(existingWindowHandle);

关于c# - Selenium webdriver 窗口处理 c# switchTo 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11237357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com