私を夢中にさせているこのことについて助けが必要です。ブラウザの URL と無限ループをチェックし、ループと別のループの間で少し (Thread.Sleep) 待機して、CPU が過負荷にならないようにしたいと考えています。次に、ブラウザーの URL が必要な場合は、ページが完全に読み込まれる前に Javascript を介して要素を追加/変更/削除したいと考えています。そうしないと、これを使用する人が変更を見ることができます。(JavaScript部分のヘルプは必要ありません)しかし、問題があります.Selenium Webdriverでは、(.get()、.navigate().to()を使用して、またはクライアントから直接ページに移動すると、 ) ページがロードされるまで、実行は強制的に停止されます。「偽の」タイムアウトを設定しようとしましたが、(少なくとも Chrome では) TimeoutException をキャッチすると、ページの読み込みが停止します。Firefox には不安定な読み込みのオプションがあることは知っていますが、私は知りません。
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().timeouts().pageLoadTimeout(0, TimeUnit.MILLISECONDS); // Fake timeout
while (true) {
try {
// If the url (driver.getCurrentUrl()) is what I want, then execute javascript without needing that page is fully loaded
// ...
// ...
}
catch (TimeoutException e) {
// It ignores the Exception, but unfortunately the page stops loading.
}
Thread.sleep(500); // Then wait some time to not overload the cpu
}
}
これは Chrome で行う必要があり、可能であれば Firefox と Internet Explorer で行う必要があります。私はJavaでプログラミングしています。前もって感謝します。