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

Автоматизация функционального тестирования
онлайн, начало 13 декабря
Python для начинающих
онлайн, начало 18 декабря
Школа для начинающих тестировщиков
онлайн, начало 12 декабря
Школа Тест-Аналитика
онлайн, начало 18 декабря
Фотография

Unsupported locator strategy


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

#1 askey

askey

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Александр

Отправлено 26 Сентябрь 2019 - 07:48

Всем привет!

Использую Selenium + C# для автоматизации тестов на вебе.

После обновления хрома до 77 версии стали падать тесты со следующим исключением: OpenQA.Selenium.WebDriverException : invalid argument: Unsupported locator strategy: null.

Chrome Driver стоит также 77.

 

Есть идеи? :)


  • 0

#2 askey

askey

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Александр

Отправлено 26 Сентябрь 2019 - 08:38

сделал даунгрейд до 76 версии. проблема не решилась


  • 0

#3 sergueik

sergueik

    Активный участник

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

Отправлено 26 Сентябрь 2019 - 14:06

код покажете - экстрасенсы заняты сейчас


  • 0

#4 Spock

Spock

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 644 сообщений
  • ФИО:Роман

Отправлено 26 Сентябрь 2019 - 14:23

да тут не надо быть и экстрасенсом, эта ошибка легко гуглится


  • 0

#5 askey

askey

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Александр

Отправлено 26 Сентябрь 2019 - 14:27

да тут не надо быть и экстрасенсом, эта ошибка легко гуглится

так тыкните носом. у меня видимо гугл сломался)


  • 0

#6 askey

askey

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Александр

Отправлено 26 Сентябрь 2019 - 14:29

код покажете - экстрасенсы заняты сейчас

тест падает при попытке найти элемент по селектору

        public void WaitInDomElement(By by)
        {
            var wait = new WebDriverWait(this.webDriver, TimeSpan.FromMilliseconds(Tests.Default.WaitTimeout))
            {
                PollingInterval = TimeSpan.FromMilliseconds(500),
            };

            wait.Until(d =>
            {
                try
                {
                    d.FindElement(by);
                    return true;
                }
                catch (NoSuchElementException)
                {
                    return false;
                }
                catch (StaleElementReferenceException)
                {
                    return false;
                }
            });
        }
Кусочек стектрейса

Result StackTrace:	
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
   at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
   at OpenQA.Selenium.Remote.RemoteWebDriver.FindElement(String mechanism, String value)
   at OpenQA.Selenium.Remote.RemoteWebDriver.FindElementByCssSelector(String cssSelector)
   at OpenQA.Selenium.By.<>c__DisplayClass23_0.<CssSelector>b__0(ISearchContext context)
   at OpenQA.Selenium.By.FindElement(ISearchContext context)
   at OpenQA.Selenium.Remote.RemoteWebDriver.FindElement(By by)
   at SCN.AutoTests.Framework.Browser.<>c__DisplayClass23_0.<WaitInDomElement>b__0(IWebDriver d) in C:\projects\automatictests\SCN.AutoTests.Framework\Browser.cs:line 210
   at OpenQA.Selenium.Support.UI.DefaultWait`1.Until[TResult](Func`2 condition)

  • 0

#7 sergueik

sergueik

    Активный участник

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

Отправлено 27 Сентябрь 2019 - 19:14

this уберите

 

  var wait = new WebDriverWait(driver, TimeSpan.FromMilliseconds(60)){
                PollingInterval = TimeSpan.FromMilliseconds(500),
        };
 
 
естественно driver в вашем классе должен быть виден а не как екстеншен метод передаваться

  • 0

#8 askey

askey

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Александр

Отправлено 30 Сентябрь 2019 - 06:52

 

this уберите

 

  var wait = new WebDriverWait(driver, TimeSpan.FromMilliseconds(60)){
                PollingInterval = TimeSpan.FromMilliseconds(500),
        };
 
 
естественно driver в вашем классе должен быть виден а не как екстеншен метод передаваться

 

убрал, но это не помогло.


  • 0

#9 yurivan

yurivan

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

  • Members
  • Pip
  • 4 сообщений
  • ФИО:Иванов Юрий


Отправлено 01 Октябрь 2019 - 05:39

Ванга подозревает, что тут обычный Null Pointer, судя по первому посту.

OpenQA.Selenium.WebDriverException : invalid argument: Unsupported locator strategy: null

 

А еще может быть проблема в несоответствии версии WebDriver и бинаря Chrome. Обновите Chrome и ChromeDriver до последней версии и попробуйте еще раз.


  • 1

#10 askey

askey

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Александр

Отправлено 01 Октябрь 2019 - 10:34

 

 

Ванга подозревает, что тут обычный Null Pointer

можно подробнее? в дебаге я вижу, что в качестве аргумента попадает реальное значение селектора (не Null)

 

 

 

Обновите Chrome и ChromeDriver до последней версии

это я сделал в первую очередь


  • 0

#11 askey

askey

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Александр

Отправлено 01 Октябрь 2019 - 10:50

Кейс такой:

  • Захожу на страницу. на ней без проблем ищутся любые элементы (проверил)
  • Кликаю на ссылку и перехожу на другую страницу. на ней при попытке найти любой элемент происходит описанное исключение.

Еще смущает то, что в блоке TearDown затем вылетает еще одно исключение

        public void WaitReadyState()
        {
            var wait = new WebDriverWait(this.webDriver, TimeSpan.FromMilliseconds(Tests.Default.WaitTimeout))
            {
                PollingInterval = TimeSpan.FromMilliseconds(Tests.Default.PollingInterval),
            };

            wait.Until(driver => (bool)this.ExecuteJavaScript("return document.readyState == 'complete'")); // System.NullReferenceException : Object reference not set to an instance of an object.
        }

  • 0

#12 askey

askey

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Александр

Отправлено 02 Октябрь 2019 - 13:26

Сделал даунгрейд до 75 версии Хрома. Проблема исчезла. Буду ждать очередного обновления. Странно, что никто не пишет о подобных проблемах, как будто я один тестирую в такой связке и делаю апдейты :)


  • 0

#13 user12

user12

    Специалист

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


Отправлено 02 Октябрь 2019 - 14:09

Сделал даунгрейд до 75 версии Хрома. Проблема исчезла. Буду ждать очередного обновления. Странно, что никто не пишет о подобных проблемах, как будто я один тестирую в такой связке и делаю апдейты :)

 

если у тебя проблема появляется после апгрейдов, а до этого работало, то очевидно же, что проблема с версиями либо хрома, либо хромдрайвера.

О подобных проблемах не пишут, т.к. если происходит такая штука,то откатываются назад и ждут более  новых версий


  • 0


Selenium 2.0: стартовый уровень
онлайн
Программирование на Java для тестировщиков
онлайн
Автоматизация функционального тестирования
онлайн
Selenium WebDriver: полное руководство
онлайн



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

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

Яндекс.Метрика
Реклама на портале