Selenium NoSuchElementException Раскрывающееся меню - PullRequest
0 голосов
/ 22 октября 2018

Как обойти сообщение об ошибке NoSuchElementException, используя Selenium в Python?Я пытаюсь выбрать тип отчета из выпадающего меню и после запуска этого кода:

 from selenium.webdriver.support.select import Select

 driver = webdriver.Chrome()

 driver.get("https://examplehtml.com/gims/app/reports")

 ##Report type

 driver.find_element_by_xpath('//*[@id="reportType"]').send_keys("Power 
 Report")

При этом вставляется слово «Отчет о мощности», но он не выбирает и не перемещает страницу вперед, как если быЯ вручную выбрал тип отчета и думаю, что это из-за ошибки NoSuchElementException.Почему элемент не найден и как я могу обойти эту ошибку.Я довольно новичок в Selenium, поэтому любой совет поможет.

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Пожалуйста, убедитесь, что элемент, который вы пытаетесь найти, виден.Селен не может работать на невидимых элементах.Если нужный элемент находится в раскрывающемся меню, сначала вам нужно раскрыть меню.Затем попробуйте снова найти элемент.

0 голосов
/ 22 октября 2018

Полагаю, вам нужно использовать выбранный класс Select.Так что если ваш HTML выглядит так:

<select>
  <option value="1">Power Report</option>
  <option value="2">Other Report</option>
</select>

.., тогда я бы попробовал этот код:

e = driver.find_element_by_xpath('//*[@id="reportType"]')
Select(e).select_by_value('1')

.. в случае, если выпадающим элементом является элемент выбора HTML.

...