Как заполнить тег текстом в Selenium Webdriver с помощью PhantomJS?


У меня есть форма ввода, которую мне нужно заполнить текстом. Это div, и у него есть дочерний узел, который является

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

Я попробовал send_keys на самом div безрезультатно, и в моем браузере я выбрал

Тег и изменил его свойство TextContent, в результате чего окно сообщения было заполнено текстом, поэтому я знаю

Тег должен быть заполнен, но использование send_keys на нем не выполняется. работа:

textbox = driver.find_elements_by_xpath(".//div[@role='textbox']/p[1]")[0]
print(textbox)
//<selenium.webdriver.remote.webelement.WebElement (session="a0712590-511d-11e6-8e12-dbe0d5eb709e", element=":wdc:1469309865349")>

Теперь с помощью send_keys:

   textbox = driver.find_elements_by_xpath(".//div[@role='textbox']/p[1]")[0]
   textbox.send_keys("This is a test")
//selenium.common.exceptions.WebDriverException: Message: Error Message => 
''undefined' is not an object (evaluating 'a.value.length')'       

Мой вопрос в том, как я могу ввести текст в это текстовое поле?

1 2

1 ответ:

send_keys() работает только на том элементе, которому нужно задать значение на их value атрибутивных значениях input и textarea, но здесь вы пытаетесь установить значение на p элементе, который нужно установить на их textContent, поэтому здесь вы должны попробовать использовать execute_script() , как показано ниже : -

textbox = driver.find_element_by_xpath(".//div[@role='textbox']/p[1]")
driver.execute_script("arguments[0].textContent = arguments[1];", textbox, "This is a test")

Или

textbox = driver.find_elements_by_xpath(".//div[@role='textbox']/p[1]")[0]
driver.execute_script("arguments[0].textContent = arguments[1];", textbox, "This is a test")

Надеюсь, что это помогает...:)