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

Фотография

Не видит элементов на странице


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

#1 Cepega

Cepega

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

  • Members
  • Pip
  • 3 сообщений

Отправлено 02 апреля 2015 - 13:44

Пишу код на C#.

WebDriver 2.45.0.0

Firefox 36.0.4

 

Есть небольшой тест, который

1. Открывается страницу

2. Авторизуется на сайте

3. Потом формирует некий URL, и проходит по нему.

4. На открытой странице ищет содержимое по CSS селектору: div.target.

 

Первые 3 этапа проходят отлично, но вот последний не работает. При этом я вижу, как на открытой странице данные элементы есть.

Ищу элементы вот так: driver.FindElements(By.CssSelector("div.target"));

Через определенное время выдается ошибка: The HTTP request to the remote WebDriver server for URL....

Такое ощущение, что он теряет браузер, т.к. не может вообще ничего найти на этой странице.

В чем может быть проблема?

 

В коде я сделал несколько методов, и в методы передаю IWebDriver driver.

Например, в последнем шаге у меня метод:

private bool checkUsers(IWebDriver driver) {

  var searchUserUrl = "http://site.ru/Search/Users?p=1";
  var url = HttpUtility.ParseQueryString(searchUserUrl);

  ...

  driver.Navigate().GoToUrl(searchUserUrl);

  var elements = driver.FindElements(By.CssSelector("div.target")); //Дальше он не идет :(

  ...

}

Метод вызывается так:

var ffProfile = new FirefoxProfile();
ffProfile.SetPreference("permissions.default.image", 2);
ffProfile.SetPreference("dom.ipc.plugins.enabled.libflashplayer.so", "false");

using (IWebDriver driver = new FirefoxDriver(ffProfile))
{
   try
       {
          driver.Navigate().GoToUrl(BaseUrl);
          ....
          checkUsers(driver);
          ...
       }
}

Не понимаю в чем дело...

Уже и Так пробовал:

var wait = new WebDriverWait(driver, new TimeSpan(0, 0, 1, 0));
wait.PollingInterval = new TimeSpan(0,0,1);
wait.Until(ExpectedConditions.ElementExists(By.CssSelector("div.target")));

Тоже не находит. Страница при этом не грузится и никуда не обращается...


  • 0

#2 Cepega

Cepega

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

  • Members
  • Pip
  • 3 сообщений

Отправлено 02 апреля 2015 - 14:22

Еще одно дополнение:

 var wait = new WebDriverWait(driver, new TimeSpan(0, 0, 5, 0)); //5 минут

 wait.PollingInterval = new TimeSpan(0, 0, 10);
 wait.Until(ExpectedConditions.ElementExists(By.CssSelector("div.target"))); //Проходит и идет дальше
 

var elements = driver.FindElements(By.CssSelector("div.target")); // Но тут останавливается.

Как так???


  • 0

#3 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 02 апреля 2015 - 14:35

похожая тема:

 

http://software-test...eout-exception/


  • 0

#4 Cepega

Cepega

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

  • Members
  • Pip
  • 3 сообщений

Отправлено 02 апреля 2015 - 14:59

Самое интересное, что вот так:

var element1 = driver.FindElement(By.CssSelector("div.target"))

Работает! А много - нет :(


  • 0

#5 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 03 апреля 2015 - 07:55

а выложешь HTML код?


  • 0

#6 mazik7

mazik7

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

  • Members
  • Pip
  • 63 сообщений
  • ФИО:Мазик
  • Город:Красноярск

Отправлено 06 апреля 2015 - 07:48

StackTrace выложите пожалуйста) Иначе ничем не поможем)


  • 0

:smile:



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

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