0

Seleniumを使用してChromeツールバーのクリックをシミュレートする方法はありますか?Selenium:Chromeツールバーのクリックをシミュレートする

具体的には、ページがロードされている間にStop loading this page(「X」字形)のボタンをクリックします。これは、ページが無限に読み込まれるのを防ぐためです。

他の3つのボタンのメソッドがあります。

driver.navigate().refresh(); 
driver.navigate().back(); 
driver.navigate().forward(); 
+1

どのプログラミング言語ですか?無限のローディングを防ぐことがあなたの目標であれば、これまでに何を試しましたか(おそらく待ちますか?キーボードショートカットを押してください) – SmartDumb

+0

これは見たことがありますかhttps://sqa.stackexchange.com/questions/5663/is-it-possible-ブラウザーを使用してブラウザでページをロードするWebセーバー – HaC

+0

@SmartDumb WebDriverWaitとキーボードショートカットは、両方ともフルページロードから返されたドライバインスタンスを必要とするため、このトリックを実行できません。 – Jacob

答えて

0

あなたは、コードの行の下に使用する必要があり、無限の負荷を防止するために:

driver.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS); 

ウェブサイトは、必要な時間内にロードされない場合は、TimeoutExceptionがスローされます。 org.openqa.selenium.TimeoutException: Timed out waiting for page load.

ブラウザでstopボタンを押すのは簡単ではありません。どうして?

get操作を実行してブラウザを停止したい場合、方法getが終了していないか、タイムアウトしていない限り、セレンは他の方法を実行しません。あなたは、スレッドを分離し、同時に実行する必要があります。 2スレッドはブラウザの同じインスタンスで動作する必要があります。タイムアウトを設定する方がよい理由です。

タイムアウトがスローされたら、それをキャッチして実行を続行できます。

try { 
    driver.get("my url"); 
} catch (TimeoutException e) { 
    //do something 
} 
+0

explaintionありがとうございます。ここで問題となるのは、リンクをクリックして新しいページに移動したい場合、入れ子になったtry-catch-finallyを書く必要があります。これは本当に難しいかもしれません – Jacob

+0

もっと普遍的な方法があるのだろうか? – Jacob

+0

あなたは何をしようとしていますか?あなたの期待する結果は何ですか?あなたはリンクのリストを持っています。このリストを繰り返し、各リンクを個別にクリックしますか? –

関連する問題