我想在所有标签之间切换,然后按ENTER键。
web.SwitchTo().Window(web.WindowHandles[windowCounter]);
javascript.ExecuteScript("$('button').click();");
。 如果我只使用SwitchTo循环并且没有执行Javascript,则在所有选项卡之间交换需要7毫秒。
当我使用js时,它似乎正在等待完成加载文档。我怎样才能快速切换标签并按Enter键进入所有标签而无需等待加载?
答案 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();");