Навигация по новой вкладке иногда не загружает страницу, почему? - PullRequest
0 голосов
/ 01 февраля 2019

Мой сценарий Java Selenium WebDriver щелкает ссылку на веб-странице, которая открывает новую вкладку и переходит на внешний сайт.Существует несколько таких ссылок на различные социальные сети.

Проблема, с которой я столкнулся, заключается в том, что иногда новая вкладка открывается и пытается загрузить внешнюю страницу, но останавливается все вместе.

Я подумал, что это не так.Ничего страшного, я просто обновлю страницу с помощью своего кода, как я бы сделал это вручную в браузере, и он попытается перезагрузить страницу.Я был не прав.

Очевидно, возможно, только в Chrome, функция перезагрузки / обновления, включенная в Selenium и даже JavaScript, не работает так же, как нажатие кнопки обновления.В этих обстоятельствах они вообще ничего не делают.

К счастью, это происходит только время от времени, но это приводит к тому, что мой тест проваливается, когда это происходит.

Когда это происходит, область заголовка вкладки говорит: «без названия»,Страница пустая белая, на ней ничего нет, и нужный адрес будет в адресной строке.Только ручное нажатие кнопки обновления перезагрузит страницу должным образом.

Я не видел, чтобы это происходило в Firefox ни разу, поэтому я собираюсь предположить, что это проблема только в Chrome.

Кто-нибудь знает, как обойти эту проблему?

Вот что я пробовал в JavaScript:

document.location.reload(false);

document.location.reload(true);

Я пробовал это в Java Selenium:

driver.navigate().refresh();

public Actions act = new Actions(driver);
act.keyDown(Keys.CONTROL).sendKeys(Keys.F5).keyUp(Keys.CONTROL).perform();

IСледует также сказать, что эти методы обновления работают нормально, когда страница работает нормально.Это буквально одна ситуация, когда их нет, и я не знаю, что делать.Нет ли способа программно нажать кнопку обновления в браузере?Мне нужно выяснить, могу ли я двигать мышь и заставить ее щелкать.

1 Ответ

0 голосов
/ 01 февраля 2019

Возможно, проблема с веб-драйвером Chrome.Попробуйте обновить до последней версии.

    driver = new ChromeDriver();
    driver.manage().window().maximize();

    baseUrl = "http://www.google.com/";
    driver.get(baseUrl);
    driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");

    ArrayList<String> tabs = new ArrayList<String> (driver.getWindowHandles());
    driver.switchTo().window(tabs.get(1)); //switches to new tab
    driver.get("https://www.facebook.com");

    driver.switchTo().window(tabs.get(0)); // switch back to main screen        
    driver.get("https://www.linkedin.com");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...