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

Подготовка к сертификации ISTQB FL
онлайн, начало 10 августа
Тестирование REST API
онлайн, начало 10 августа
Программирование на Python для тестировщиков
онлайн, начало 14 августа
Тестирование без требований
онлайн, начало 17 августа
Фотография

Unsupported locator strategy


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

#1 askey

askey

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

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

Отправлено 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
  • 10 сообщений
  • ФИО:Александр

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

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


  • 0

#3 sergueik

sergueik

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

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

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

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


  • 0

#4 Spock

Spock

    Гуру

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

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

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


  • 0

#5 askey

askey

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

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

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

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

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


  • 0

#6 askey

askey

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

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

Отправлено 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
  • 138 сообщений
  • ФИО:кузьмин сергей

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

this уберите

 

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

  • 0

#8 askey

askey

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

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

Отправлено 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
  • 10 сообщений
  • ФИО:Александр

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

 

 

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

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

 

 

 

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

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


  • 0

#11 askey

askey

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

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

Отправлено 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
  • 10 сообщений
  • ФИО:Александр

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

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


  • 0

#13 user12

user12

    Специалист

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


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

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

 

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

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


  • 0


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



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

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

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