Как выбрать следующее выпадающее меню, используя Селен Python - PullRequest
0 голосов
/ 22 марта 2019

Мне нужно выбрать второе, третье и до последнего выпадающее меню selenium python.

Я могу выбрать первое выпадающее меню, но не знаю, как выбрать следующее выпадающее меню.Для выбора первого выпадающего меню я использовал следующую команду

from selenium import webdriver
driver =webdriver.Firefox()
driver.get("https://pmfby.gov.in")
driver.maximize_window()
em = driver.find_element_by_partial_link_text("Calculator")
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select
ActionChains(driver).click(em).perform()
Select(driver.find_element_by_tag_name("select")).select_by_index(2)

Снимок экрана веб-страницы выглядит следующим образом: введите описание изображения здесь

Пожалуйста, помогите мне решить эту проблему.

Ответы [ 2 ]

0 голосов
/ 22 марта 2019

Вы можете просто проиндексировать список webElements, возвращаемый классом управления формой. Это быстрее, чем xpath.

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://pmfby.gov.in")
driver.maximize_window()
em = driver.find_element_by_partial_link_text("Calculator")
em.click()
dropDowns = driver.find_elements_by_css_selector('.form-control')

for i in range(len(dropDowns)):
    dropDowns[i].click()
0 голосов
/ 22 марта 2019

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

Вы можете сделать это следующим образом:

def select_dropdown_value(dropdown_number):
    select = Select(driver.find_element_by_xpath("(//select[@placeholder='Select Pack'])["+dropdown_number+"]")))
    select.select_by_index(1)

И теперь вы можете вызвать эту функцию, отправив в нее dropdown_number, для которого она выберет значение из выпадающего списка на странице.
Вы можете вызвать эту функцию следующим образом:

select_dropdown_value(1) or
select_dropdown_value(2)

И здесь вы также можете параметризовать индексный номер, если это необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...