Как заполнить тег текстом в 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 ответ:
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")
Надеюсь, что это помогает...:)