2017-08-08 22 views
0

私のすべてのタブを切り替えるには、Enterキーを押します。ループの中 ウィンドウを切り替えてEnterキーを押します。

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

。 SwitchToでループし、Javascriptを実行しないと、すべてのタブを交換するのに7msかかります。

jsを使用すると、ドキュメントの読み込みが完了するのを待っているようです。どのように私はちょうど迅速にタブを切り替えることができますし、負荷を待つことなくそれらのすべてに入力を押す?

答えて

1

能力pageLoadStrategynoneに設定する必要があります。しかし、ChromeDriverはDesiredCapabilityをサポートしていないようです。回避策が必要な場合があります。以下の例ではRemoteWebDriverを使用してDesiredCapabilityを設定しています。それは空白のクロムを開き、初めてそれを閉じます。

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();"); 
+0

あなたは確かに高速でしょうか?これは4つのタブでこのボタンをクリックするだけで、タブごとのランタイムは<200ms – TNation

+0

です@TNationそれはページの読み込みを待つことがないので、rangetimeは1ミリ秒未満でなければなりません。 – Buaban

+0

私はすでにドライバーを開いています。ドライバはページローディングを待ちます。実行時に待機を無効にすることはできますか? – TNation

関連する問題