我需要帮助这件让我发疯的事情。我想检查浏览器 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 编程。提前致谢。