Выполнение поиска при использовании Chrome, но не в Firefox (Selenium) - PullRequest
0 голосов
/ 04 февраля 2019

Это фрагмент кода для chroome:

driver.get("https://www.youtube.com/")
driver.find_element_by_xpath('//*[@id="search"]').send_keys("kao")
driver.find_element_by_xpath('//*[@id="search-icon-legacy"]').click()

Браузер автоматически открывает Youtube и выполняет поиск пропущенной строки [это задача, которую я намерен выполнить]

Основная проблемапоявляется, когда я начинаю использовать firefox. Страница загружается правильно. Я в основном использую один и тот же код, но каждый раз, когда я запускаю его, он выдает следующую ошибку:

Message: Element <g id="search"> is not reachable

Я не могу передать строку в строку поискаили даже щелкните по нему.

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

В xpath //*[@id='search'] есть небольшая ошибка, что он возвращает два элемента, как на экране ниже.Причина в том, что * в указанном выше xpath действует как символ подстановки и совпадает с другим тегом ytd-searchbox<id="search"> на странице.То же самое верно для //*[@id="search-icon-legacy"].

Поэтому вы должны попробовать перейти на xpath, как показано ниже, чтобы найти уникальные веб-элементы

//input[@id='search']
//button[@id='search-icon-legacy']

Errored Xpath:

enter image description here

0 голосов
/ 05 февраля 2019

Ваш Xpath неверен.Невозможно найти поле поиска и кнопку

Вы можете использовать это

driver.get("https://www.youtube.com/")
driver.find_element_by_xpath("//input[@id='search']").send_keys("kao")
driver.find_element_by_xpath("//button[@id='search-icon-legacy']").click()
...