NoSuchElementException: Сообщение: нет такого элемента: невозможно найти элемент при попытке выбора параметров в раскрывающемся списке - PullRequest
0 голосов
/ 14 января 2019

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

Используя решение из аналогичного вопроса, я попробовал эту строку кода:

driver.find_element_by_xpath("//select[@name='interface']/option[text()='Management']").click()

HTML

<select class="col-1 custom-select" name="interface" id="interface" required="required">
  <option selected="" disabled="" class="hideoption">Select Interface</option>
  <option value="InterfaceLAN">Production</option>
  <option value="MgmtLAN">Management</option>
  <option value="Clustering">Clustering</option>
</select>

Я бы хотел автоматизировать процесс нажатия на выпадающее меню и выбора опции «Управление». Тем не менее, я получил сообщение об ошибке, как показано:

NoSuchElementException: Message: no such element: Unable to locate element:"method":"xpath","selector":"//select[@name='interface']/option[text()='Management']"}

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Попробуйте использовать Select Class, укажите там xpath раскрывающегося списка. Затем попробуйте выбрать раскрывающийся список по значению, индексу или видимому тексту

Код:

from selenium.webdriver.support.ui import Select

select = Select(driver.find_element_by_name('name'))
select.select_by_index(index)
select.select_by_visible_text("text")
select.select_by_value(value)
0 голосов
/ 14 января 2019

Поскольку требуемый элемент является элементом select, вам необходимо использовать класс Select и вызвать WebDriverwait , чтобы желаемый элемент был видимым , и вы можете использовать следующее решение:

from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# other lines of code
select = Select(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//select[@id='interface' and @name='interface']"))))
select.select_by_value("MgmtLAN")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...