Я беру курс селена онлайн, и мы автоматизируем вход в систему. Лекция устарела и обновляется веб-сайт, который мы используем (Quora).Поиск разделов с меняющимися именами классов (селен)
Проблема заключается в том, что поля ввода имеют случайным образом сгенерированные имена классов, что делает "find_element_by_id метод бесполезен.
Я не могу понять, как войти в систему для различных сеансов. Как я выбираю эти поля во время различных сессий (которые имеют разные имена классов). Это то, что мой код выглядит следующим образом. Спасибо заранее. Я попытался попросить инструктор, конечно, но он hasnt ответил всю неделю.
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome(executable_path = r'/Users/mpbro17/Desktop/chromedriver')
driver.get('https://www.quora.com')
driver.find_element_by_id("__w2_fy0VXDC_email").clear()
driver.find_element_by_id("__w2_fy0VXDC_email").send_keys("[email protected]")
driver.find_element_by_id("__w2_fy0VXDC_password").clear()
driver.find_element_by_id("__w2_fy0VXDC_password").send_keys("testpassword1")
driver.find_element_by_id("__w2_fy0VXDC_submit_button").click()
ОШИБКА
Traceback (most recent call last):
File "/Users/mbpro/Desktop/projects/scraping_course/test_quora_login.py", line 13, in <module>
driver.find_element_by_name("email").clear()
File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/webelement.py", line 92, in clear
self._execute(Command.CLEAR_ELEMENT)
File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/webelement.py", line 494, in _execute
return self._parent.execute(command, params)
File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 236, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 192, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidElementStateException: Message: invalid element state: Element is not currently interactable and may not be manipulated
(Session info: chrome=53.0.2785.143)
(Driver info: chromedriver=2.24.417412 (ac882d3ce7c0d99292439bf3405780058fcca0a6),platform=Mac OS X 10.11.5 x86_64)
Я попытался это, но я все еще получаю Erorr «линии 192, в check_response рейза exception_class (сообщение, экран, StackTrace) selenium.common .exceptions.InvalidElementStateException: Сообщение: недопустимое состояние элемента: элемент должен быть доступен для редактирования, чтобы очистить его. " – tafra