获取当前活动标签

时间:2019-08-05 08:38:49

标签: c# google-chrome selenium-webdriver

我正在使用Selenium和Web驱动程序C#。我想查询当前选项卡并对其进行某些分析。如果用户打开新标签页,则应查询新标签页。

我一直在尝试所有C#API方法来执行此任务,例如SwitchTo()

foreach (string s in this.driver.WindowHandles){
  this.driver.SwitchTo().Window(s);
  if (((IJavaScriptExecutor)this.driver).ExecuteScript("return document.hidden").Equals("false")) {

    IJavaScriptExecutor scriptExe = (IJavaScriptExecutor)this.driver;
    WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
    wait.Until<bool>(Function);//function evaluation certain expression...
    scriptExe.ExecuteScript("alert(\"Something\");");
  }
}

上面的代码存在问题,因为我在两个标签之间进行切换,我认为这是正确的,在多个标签之间闪烁。

1 个答案:

答案 0 :(得分:1)

如果您想要最后打开的选项卡,则需要使用最后一个窗口句柄,而不是循环遍历所有这些

string windowHandle = this.driver.WindowHandles.Last() // using System.Linq
this.driver.SwitchTo().Window(windowHandle);
//...