Перейти к содержимому

Фотография

При смене вкладки, не загружается страница.

WebDriver C# Chromedriver

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 bich

bich

    Новый участник

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Максим

Отправлено 18 декабря 2018 - 16:06

Здравствуйте, уважаемые форумчане!)

Начал изучать webdriver в связке с c# и столкнулся с такой проблемой.

Версия chromedriver: 2.45

Версия selenium: 3.141.0

 

Суть проблемы:

На странице при нажатии на кнопку открывается facebook в новой вкладке браузера. Я пробую переключиться на открывшуюся вкладку, и получается так что при переключении страница перестает загружаться. Следовательно дальше не получается получить url этой страницы. Если запускать тест под дебагом и идти по шагам, то тест проходит.

 

Переход на новую вкладку осуществляю вот так:

_webDriver.SwitchTo().Window(_webDriver.WindowHandles.Last());

 

Подскажите пожалуйста, решение проблемы, уже сил нет гуглить))


  • 0

#2 sergueik

sergueik

    Постоянный участник

  • Members
  • PipPipPip
  • 166 сообщений
  • ФИО:кузьмин сергей

Отправлено 18 декабря 2018 - 18:38

@bich покажите немного кода. попробейте не брать Last а пройтись по всем handles


  • 0

#3 bich

bich

    Новый участник

  • Members
  • Pip
  • 2 сообщений
  • ФИО:Максим

Отправлено 19 декабря 2018 - 08:53

@sergueik, вот кусочек кода:

 

_footerPage.FaceBookButton.Click();
_webDriver.SwitchTo().Window(_webDriver.WindowHandles.Last());
var url = _webDriver.Url;
 
Проблема в том что при дебаге это все работает прекрасно)
А может есть какой-то способ дождаться загрузки страницы, не переключаюсь на вкладку с ней, потому что, при переключении страница полностью перестает загружаться(

  • 0

#4 sergueik

sergueik

    Постоянный участник

  • Members
  • PipPipPip
  • 166 сообщений
  • ФИО:кузьмин сергей

Отправлено 19 декабря 2018 - 13:29

@bich покажите^W напишите немного кода - в котором вы смотрите что в том handle где ваш код собирется продолжать выполнение - я думаю увидите что вы не в том окне . это же просто

 

	public void test1() {
		String parentHandle = driver.getWindowHandle(); // Save parent window
		boolean isChildWindowOpen = wait
				.until(ExpectedConditions.numberOfWindowsToBe(2));
		if (isChildWindowOpen) {
			Set<String> handles = driver.getWindowHandles();
			// Switch to child window
			for (String handle : handles) {
System.err.println("Window handle: " + handle);
				driver.switchTo().window(handle);
				System.err.println("Window title: " + driver.getTitle());
				if (!parentHandle.equals(handle)) {

/// wait 

     wait.until(ExpectedConditions.urlContains(finalUrl));

ну и  т.д.стандартные 100500 строк boilerplate code


  • 0



Темы с аналогичным тегами WebDriver, C#, Chromedriver

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных