我想打开一个新标签并关闭Selenium中的第一个标签。
所以,我使用p
方法来做到这一点。
但我的问题是当我打开新标签时,我无法继续使用SendKeys
方法切换到我的第一个标签并关闭当前标签。
输入while循环时,SendKeys
和SendKeys
都无效。
我尝试使用此javascript代码:
ExecuteJS
但它也无效。
我的代码是这样的:
browser.ExecuteJS("window.close();");
我使用方法IWebElement body = browser.FindElementByTagName("body");
//browser.ExecuteJS("window.open();");
body.SendKeys(OpenQA.Selenium.Keys.Control + 't');
browser.DeleteAllCookies();
Thread.Sleep(50);
while (browser.GetWindowNum() > 1)
{
body.SendKeys(OpenQA.Selenium.Keys.Control + OpenQA.Selenium.Keys.Tab);
body.SendKeys(OpenQA.Selenium.Keys.Control + 'w');
//browser.ExecuteJS("window.close();");
_tmExcute = DateTime.Now;
}
browser.GoToUrl(link);
browser.WaitForPageToLoad();
来检查制表符的数量是否大于1。
这是我的代码,用于检查浏览器中的标签数量:
GetWindowNum()
答案 0 :(得分:2)
您只需切换第一个窗口并使用驱动程序和WindowHandles
关闭它ReadOnlyCollection<string> windowHandles = wd.WindowHandles;
string firstWindow = windowHandles.ElementAt(0); //first window handle at 0 index
foreach (string handle in windowHandles) { //Gets the new window handle
if(handle == firstWindow) {
wd.switchTo().window(handle); // switch focus of WebDriver to the first window
wd.close(); //close that window
break;
}
}