Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Ошибка нахождения элемента - WebDriver unknown error

selenide
webdriver
java
chrome
Теги: #<Tag:0x00007f7b70af9ef0> #<Tag:0x00007f7b70af9d88> #<Tag:0x00007f7b70af9bd0> #<Tag:0x00007f7b70af9a18>

(Sergey QA) #1

Собственно, валятся тесты при попытке нахождения локатора на странице, с использованием связки - Selenide + ChromeDriver.

Драйвер выдает исключение:
Caused by: WebDriverException: unknown error: Cannot use ‘in’ operator to search for ‘String’ in 3
(полный лог ошибки - https://pastebin.com/gJgdWNu0)

Погуглив - решил, что возможная проблема - в Хроме.
Обновил Selenide - до версии 4.5.1, ChromeDriver - до версии 2.30, Хром - до 59.
Не помогло.

Кто сталкивался - чем можно починить или обойти данную проблему?


(Vasiliy Rakshin) #2

Покажите весь элемент #blob_item.inputFile из дома.
И что вы с ним делаете.


(Sergey QA) #3

Конкретно в него - лью файл, однако ошибка валится при любом обращении к поиску любого элемента на странице.
Локаторы писать я умею.


(Ramon Menezes) #4

ответ в логах, вы ищете элемент масива в стринге, можно больше условий ?


(Sergey QA) #5

Я не ищу элемент массива в стринге, подобная ошибка происходит при абсолютном любом вызове нахождения элемента на странице:

private By browseButton = By.id("blob_item");

public void  uploadFile (String filePath){
    $(browseButton).uploadFile(new File(filePath));
    $(uploadButton).click();
}

(Roma Marinsky) #6

Это бага хромдрайвера, багу скоро исправят https://bugs.chromium.org/p/chromedriver/issues/detail?id=1885&q=&colspec=ID%20Status%20Pri%20Owner%20Summary


(Sergey QA) #7

Благодарю)


(Sergey QA) #8

Продублирую решение с баг-трэкера Хромиума:

Hah, good catch! And until this gets patched, we can use this as a workaround:

driver.find_element_by_css_selector(‘html’)
Message: unknown error: Cannot use ‘in’ operator to search for ‘String’ in null
driver.execute_script(‘global = undefined;’)
driver.find_element_by_css_selector(‘html’)
<selenium.webdriver.remote.webelement.WebElement (session=“426398402b0affe5d89ec5769f596cf5”, element=“0.6694440740023262-1”)>