Иногда, когда я хочу загрузить страницу, что-то происходит со сценариями и блокирует браузер.
С помощью этого html я могу смоделировать точную проблему:
<html>
<head>
<script>
while(true){}
</script>
</head>
<body>
<div id='stuck'>
I'm stuck.
</div>
</body>
</html>
I попробуйте запустить мой код на странице выше:
ChromeOptions coptions = new ChromeOptions();
coptions.setCapability("pageLoadStrategy", "none");
//rootOfProject/data/chromedriver.exe
System.setProperty("webdriver.chrome.driver", "data/chromedriver.exe");
WebDriver driver = new ChromeDriver(coptions);
driver.manage().window().maximize();
driver.get("file:///.../stuckbrowser.html");
WebDriverWait wdw = new WebDriverWait(driver, 10);
//using debugger it stuck here
//more than 10 seconds(infintely) - because browser is frozen from script in <head>
String text = wdw.until(ExpectedConditions.visibilityOfElementLocated(By.id("stuck"))).getText();
System.out.println(text);
driver.quit();
System.out.println("Done");
Мой код застревает, когда я пытаюсь набрать getText()
элемента с id = stuck
.
Он остается там более 10 секунд (сколько? Я не знаю. Я думаю, что это бесконечно).
Может быть способ остановить скрипты (с веб-страницы), которые запускают больше чем х секунд?