селен: не доступен с клавиатуры - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь опубликовать gist на gist.github.com, используя python / selenium. Это мой текущий код:

driver.find_element(By.NAME, "gist[contents][][name]").send_keys("file.md")

#import pdb; pdb.set_trace()

tmp = driver.find_element(By.NAME, "gist[contents][][value]").send_keys("Description file")
#keyboard.write("Description file")


driver.find_element(By.XPATH, "//button[@name=\'gist[public]\']").click()

time.sleep(30)

Код работает на примитиве, у меня большие проблемы с вводом gist[contents][][name],приложение убивает и возвращает мне эту ошибку: is not reachable by keyboard ... у меня нет идеи, как я могу исправить эту ошибку, кто-нибудь знает, как я могу решить эту проблему?

полная ошибка:

admin$ python github_login.py 
Traceback (most recent call last):
  File "github_login.py", line 31, in <module>
    tmp = driver.find_element(By.NAME, "gist[contents][][value]").send_keys(".")
  File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/webelement.py", line 479, in send_keys
    'value': keys_to_typing(value)})
  File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/webelement.py", line 633, in _execute
    return self._parent.execute(command, params)
  File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotInteractableException: Message: Element <textarea class="form-control file-editor-textarea js-blob-contents js-code-textarea " name="gist[contents][][value]"> is not reachable by keyboard

1 Ответ

0 голосов
/ 19 сентября 2019

Вы можете использовать этот локатор:

.find_element(By.CLASS_NAME, "CodeMirror-lines")

А также использовать ActionChains.

Сначала вам потребуется следующий импорт:

from selenium.webdriver import ActionChains

Попробуйте приведенный ниже код:

driver.get("https://gist.github.com/")
driver.find_element(By.NAME, "gist[description]").click()
driver.find_element(By.NAME, "gist[description]").send_keys("GIST DESCRIPTION")
driver.find_element(By.NAME, "gist[contents][][name]").send_keys("file.md")

#HERE
el = driver.find_element(By.CLASS_NAME, "CodeMirror-lines")
ActionChains(driver).move_to_element(el).click(el).send_keys('Description file').perform()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...