另外,我知道如何使用Driver.getTitle,但它只返回父窗口的标题。在确定新打开的窗口或选项卡是否处于焦点时,我无法发现任何东西。
如果有可能处理这两个问题,至少有人能给我指明正确的方向吗?
首先,
另外,我知道如何使用Driver.getTitle,但它只返回父窗口的标题。
这意味着您没有切换到新窗口。您需要切换到新窗口,然后验证标题。
[Test]
public void MultipleWindows_Test()
{
IWebDriver driver = new ChromeDriver(@"CHROME DRIVER PATH");
//Navigate to URL for ex. http://www.w3schools.com/js/
driver.Navigate().GoToUrl(@"http://www.w3schools.com/js/");
driver.Manage().Window.Maximize();
//Get Parent Window Handle
string parentWindow = driver.CurrentWindowHandle;
string newWindow = "";
string expectedNewWindowTitle = "Tryit Editor v2.6";
Thread.Sleep(2000); //Static wait is not recommended
Console.WriteLine("Parent Window Title: " + driver.Title);
//Click on the link to open new window
IWebElement TryItYourselfLink = driver.FindElement(By.LinkText("Try it Yourself »"));
TryItYourselfLink.Click();
Thread.Sleep(2000); //Static wait is not recommended
//Store all window handles in a list
IList<string> allWindowHandles = driver.WindowHandles;
//If allWindowHandles.Count is greater than 1 then you can say that new window has been opened.
if (allWindowHandles.Count > 1)
{
Console.WriteLine("New window has been opened.");
}
//Get new window handle
for (int i = 0; i < allWindowHandles.Count; i++)
{
if (allWindowHandles[i] != parentWindow)
{
newWindow = allWindowHandles[i];
}
}
//Switch to new window handle.
driver.SwitchTo().Window(newWindow);
Console.WriteLine("New Window Title: " + driver.Title);
//You can verify the title of new window to verify whether is in focus or not.
Assert.AreEqual(expectedNewWindowTitle, driver.Title);
}
问题内容: 我正在使用Selenium WebDriver。每个链接都会在新的浏览器窗口中打开。这对我来说不方便。如何更改它以便仅在新选项卡中打开? 问题答案: 硒目前无法切换标签。因此,我们迫使浏览器在新窗口中打开链接,但是由于我们能够切换窗口,因此我们迫使浏览器采用这种方法。这 可能 会在更高版本中修复
我正在使用Selenium WebDriver。每个链接都在一个新的浏览器窗口中打开。对我来说不方便。我如何更改它,使它只在新选项卡中打开?
问题内容: 我有一个选择框,当选择一个项目时会调用。Firefox默认会在新标签页中打开页面。但是,我希望页面在新窗口中打开,而不是在新标签页中打开。 我该怎么做? 问题答案: 给窗口一个“ specs”参数,该参数的宽度/高度为 有关所有可能的选项。 指定宽度/高度时,它将在新窗口(而不是选项卡)中打开它。
问题内容: 这个问题已经在这里有了答案 : Target =’_ blank’以显示在新窗口中,而不是新标签中,可能吗? (9个答案) 5年前关闭。 有没有一种方法可以使链接在不使用JavaScript的情况下打开新的浏览器窗口(而非标签页)? 问题答案: 使用纯HTML 不能影响这一点-每个现代的浏览器(=用户)都可以完全控制此行为,因为它过去曾被滥用很多。 HTML选项 您可以打开一个新窗口(
问题内容: 我有来自第三方开发人员的JavaScript文件。它具有一个具有链接的链接,该链接将当前页面替换为目标页面。我想在新标签页中打开此页面。 这是我到目前为止所拥有的: 谁能帮我吗? 问题答案:
问题内容: 是否有可靠的跨浏览器方式来检测选项卡是否具有焦点。 场景是,我们有一个应用程序会定期轮询股票价格,如果页面没有重点关注,我们可以停止轮询并为每个人节省交通噪音,尤其是当人们热衷于打开具有不同投资组合的多个标签时。 是并且为此选择吗? 问题答案: 是的,并且应该适合您的方案: http://www.thefutureoftheweb.com/blog/detect-browser-win