Python Selenium: не удалось выполнить Send_keys

Я хотел бы заполнить форму с

driver.find_element_by_id("name").send_keys("Test")

Но я получаю эту ошибку каждый раз, когда запускаю скрипт:

Traceback (most recent call last):
  File "fill.py", line 22, in <module>
    driver.find_element_by_id("name").send_keys("Test")
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 351, in find_element_by_id
    return self.find_element(by=By.ID, value=id_)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 955, in find_element
    'value': value})['value']
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 312, in execute
    self.error_handler.check_response(response)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Failed to execute 'contains' on 'Node': parameter 1 is not of type 'Node'.
  (Session info: chrome=66.0.3359.117)
  (Driver info: chromedriver=2.38.552518 (183d19265345f54ce39cbb94cf81ba5f15905011),platform=Mac OS X 10.13.4 x86_64)

<input first_and_last="true" placeholder="name" class="string required" type="text" name="flname" id="name">

Примечание. Я также получаю сообщение об ошибке при поиске имени. Если я ищу Xpath, он заполняет форму очень медленно, и мне нужно, чтобы это было быстрее.

Как я могу решить эту проблему?


person Julian    schedule 26.04.2018    source источник
comment
Можете ли вы добавить фрагмент HTML?   -  person demouser123    schedule 26.04.2018
comment
Как это f попало в журналы трассировки, как в find_element_by_id("ƒname"), где ваш код читается как find_element_by_id("name")   -  person DebanjanB    schedule 26.04.2018
comment
Добавлен фрагмент HTML! F был ошибкой пасты, удалил ее!   -  person Julian    schedule 26.04.2018


Ответы (1)


Используйте любую из стратегий поиска:

  • css_selector :

    driver.find_element_by_css_selector("input.string.required#name").send_keys("Test")
    
  • XPath :

    driver.find_element_by_xpath("//input[@class='string required' and @id='name']").send_keys("Test")
    

Обновлять

Я попытался найти решение для обоих сообщений об ошибках, с которыми вы столкнулись, и вот соответствующие подробности:

person DebanjanB    schedule 26.04.2018
comment
Не удалось выполнить «getComputedStyle» для «Window»: параметр 1 не имеет типа «Element». на CSS - person Julian; 26.04.2018
comment
@Julian Проверьте мой ответ и дайте мне знать, если возникнут вопросы. - person DebanjanB; 26.04.2018