Selenium - Стоп сценарий с веб-страницы - PullRequest
1 голос
/ 24 февраля 2020

Иногда, когда я хочу загрузить страницу, что-то происходит со сценариями и блокирует браузер.

С помощью этого 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 секунд (сколько? Я не знаю. Я думаю, что это бесконечно).

Может быть способ остановить скрипты (с веб-страницы), которые запускают больше чем х секунд?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...