используйте селен для ввода текста в поле с контролем формы - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть код ниже, который пытается ввести текст в ячейку в горизонтальной форме.Я использую селен, и у страницы есть источник, подобный источнику примера ниже.Когда я запускаю приведенный ниже код, пытаясь идентифицировать элемент по идентификатору, я получаю сообщение об ошибке ниже.Кто-нибудь видит, в чем может быть проблема, и можете ли вы подсказать, как ее устранить?

источник:

<div class="form-group" id="questionaire0"><div class="col-sm-11 question"><h5>Please write your Full Name<small> (Briefly respond below)</small></h5></div><div class="col-sm-11"><textarea name="questionaire0" class="form-control"></textarea></div></div>

код:

driver.find_element_by_id("questionaire0").send_keys(‘Test Name’)

time.sleep(1)

Ошибка:

---------------------------------------------------------------------------
WebDriverException                        Traceback (most recent call last)
<ipython-input-54-c78e15aec19b> in <module>()
      1 
      2 
----> 3 driver.find_element_by_id("questionaire0").send_keys('Test Name')
      4 
      5 time.sleep(1)

~/anaconda/envs/py36/lib/python3.6/site-packages/selenium/webdriver/remote/webelement.py in send_keys(self, *value)
    477         self._execute(Command.SEND_KEYS_TO_ELEMENT,
    478                       {'text': "".join(keys_to_typing(value)),
--> 479                        'value': keys_to_typing(value)})
    480 
    481     # RenderedWebElement Items

~/anaconda/envs/py36/lib/python3.6/site-packages/selenium/webdriver/remote/webelement.py in _execute(self, command, params)
    626             params = {}
    627         params['id'] = self._id
--> 628         return self._parent.execute(command, params)
    629 
    630     def find_element(self, by=By.ID, value=None):

~/anaconda/envs/py36/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py in execute(self, driver_command, params)
    318         response = self.command_executor.execute(driver_command, params)
    319         if response:
--> 320             self.error_handler.check_response(response)
    321             response['value'] = self._unwrap_value(
    322                 response.get('value', None))

~/anaconda/envs/py36/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py in check_response(self, response)
    240                 alert_text = value['alert'].get('text')
    241             raise exception_class(message, screen, stacktrace, alert_text)
--> 242         raise exception_class(message, screen, stacktrace)
    243 
    244     def _value_or_default(self, obj, key, default):

WebDriverException: Message: unknown error: cannot focus element
  (Session info: chrome=72.0.3626.109)
  (Driver info: chromedriver=2.42.591059 (a3d9684d10d61aa0c45f6723b327283be1ebaad8),platform=Mac OS X 10.12.6 x86_64)

1 Ответ

0 голосов
/ 25 февраля 2019

В вашем поле Textarea отсутствует атрибут с именем id. Вы используете атрибут name. Он должен работать.

driver.find_element_by_name("questionaire0").send_keys('Test Name')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...