切换windowHandles并按Enter键

时间:2017-08-08 21:24:27

标签: javascript c# jquery selenium webdriver

我想在所有标签之间切换,然后按ENTER键。

web.SwitchTo().Window(web.WindowHandles[windowCounter]); javascript.ExecuteScript("$('button').click();");

在for循环中

。 如果我只使用SwitchTo循环并且没有执行Javascript,则在所有选项卡之间交换需要7毫秒。

当我使用js时,它似乎正在等待完成加载文档。我怎样才能快速切换标签并按Enter键进入所有标签而无需等待加载?

1 个答案:

答案 0 :(得分:1)

您需要将功能pageLoadStrategy设置为none。但是,ChromeDriver似乎不支持DesiredCapability。您可能需要一种解决方法。我在下面的示例使用RemoteWebDriver设置DesiredCapability。它将打开一个空白的Chrome并首次关闭它。

string binLocation = @"./";
ChromeOptions chromeOpt = new ChromeOptions();
chromeOpt.AddArguments("--disable-extensions");
ChromeDriverService service = ChromeDriverService.CreateDefaultService(binLocation);
service.Port = 9515;
var driver = new ChromeDriver(service, chromeOpt);
driver.Close();

var options = new Dictionary<string, object>();
options.Add("browserName", "chrome");
options.Add("pageLoadStrategy", "none");
var capabilities = new DesiredCapabilities(options);
var driver = new RemoteWebDriver(new Uri("http://localhost:9515"), capabilities);

// do your works here //
////////////////////////

web.SwitchTo().Window(web.WindowHandles[windowCounter]);
// Make sure the button is clickable. You may use WebDriverWait.
javascript.ExecuteScript("$('button').click();");