не удается получить доступ к HTML-файлу Выберите опцию, используя ошибку получения selenium. Исключение ElementNotInteractableException

#python #selenium #selenium-firefoxdriver

Вопрос:

Я пытаюсь очистить данные с этого динамического веб-сайта с настройкой файлов, который загружает данные с помощью запросов javascript (ajax).

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

Вот код, который я пишу, чтобы выбрать автомобили из типа

 from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select

PATH = "C:SeleniumDriversgeckodriver.exe"
driver = webdriver.Firefox(executable_path=PATH)

driver.get("https://file-tuning.com/chiptuning")

type_element_select = driver.find_element_by_id("type")
action = ActionChains(driver) 
action.move_to_element(type_element_select)
action.click(type_element_select)
action.perform()
action.move_to_element(Select(type_element_select).select_by_value("cars"))
action.click(Select(type_element_select).select_by_value("cars"))
action.perform()
 

Ошибка, которую я получаю:

 Traceback (most recent call last):
  File "D:Pythonseleniumtest.py", line 27, in <module>
    action.move_to_element(Select(type_element_select).select_by_value("cars"))
  File "C:UsersUmairAppDataLocalProgramsPythonPython39libsite-packagesseleniumwebdriversupportselect.py", line 82, in select_by_value
    self._setSelected(opt)
  File "C:UsersUmairAppDataLocalProgramsPythonPython39libsite-packagesseleniumwebdriversupportselect.py", line 212, in _setSelected
    option.click()
  File "C:UsersUmairAppDataLocalProgramsPythonPython39libsite-packagesseleniumwebdriverremotewebelement.py", line 80, in click
    self._execute(Command.CLICK_ELEMENT)
  File "C:UsersUmairAppDataLocalProgramsPythonPython39libsite-packagesseleniumwebdriverremotewebelement.py", line 633, in _execute
    return self._parent.execute(command, params)
  File "C:UsersUmairAppDataLocalProgramsPythonPython39libsite-packagesseleniumwebdriverremotewebdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:UsersUmairAppDataLocalProgramsPythonPython39libsite-packagesseleniumwebdriverremoteerrorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotInteractableException: Message: Element <option> could not be scrolled into view
 

Я также пробую это

 types_element = driver.find_element_by_id("type")
types_object = Select(types_element)
types_object.select_by_visible_text("Cars")
 

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

Ответ №1:

Вам необходимо использовать браузер в полноэкранном режиме :

 driver.maximize_window()
 

чтобы все веб-элементы были видны Селену.

Пример кода :

 PATH = "C:SeleniumDriversgeckodriver.exe"
driver = webdriver.Firefox(executable_path=PATH)

driver.maximize_window()
driver.implicitly_wait(30)
driver.get("https://file-tuning.com/chiptuning")
wait = WebDriverWait(driver, 10)

type_element_select = driver.find_element_by_id("type")
action = ActionChains(driver)
action.move_to_element(type_element_select)
action.click(type_element_select)
action.perform()
action.move_to_element(Select(type_element_select).select_by_value("cars"))
action.click(Select(type_element_select).select_by_value("cars"))
action.perform()