Как мне получить доступ к флажкам, используя Selenium в Python? - PullRequest
0 голосов
/ 14 апреля 2020

Я хочу искать университеты и хранить информацию на сайте DAAD. Вот мой код,

from selenium import webdriver
from selenium.webdriver.support.ui import Select
import chromedriver_binary
import time

browser = webdriver.Chrome()
browser.maximize_window()
browser.get('https://www2.daad.de/deutschland/studienangebote/international-programmes/en/')

searchElem = browser.find_element_by_id('suggest')
searchElem.send_keys('Mechanical')
select = Select(browser.find_element_by_id('filterFos'))
select.select_by_index(3)
select_lang = Select(browser.find_element_by_id('exampleFormControlSelect1'))
select_lang.select_by_index(2)

Но в строке 15 появляется следующая ошибка (т. Е. Когда я пытаюсь установить флажок для выбора степени):

raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable: Element is not currently visible and may not be manipulated

1 Ответ

0 голосов
/ 14 апреля 2020

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

from selenium import webdriver
from selenium.webdriver.support.ui import Select
import chromedriver_binary
import time

browser = webdriver.Chrome()
browser.maximize_window()
browser.get('https://www2.daad.de/deutschland/studienangebote/international-programmes/en/')

searchElem = browser.find_element_by_id('suggest')
searchElem.send_keys('Mechanical')
select = Select(browser.find_element_by_id('filterFos'))
select.select_by_index(3)
select_lang_fieldset = browser.find_element_by_xpath('//select[@id="exampleFormControlSelect1"]/parent::fieldset')
# Open dropdown list
select_lang_fieldset.find_element_by_xpath('./div').click()
# Select desired course type
select_lang_fieldset.find_element_by_xpath('./div/ul/li[2]/label/input').click()
# Close dropdown list
select_lang_fieldset.find_element_by_xpath('./div').click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...