Как использовать JavascriptExecutor вместо send_keys в Селене Python - PullRequest
1 голос
/ 30 марта 2019

Я написал скрипт на python, используя send_key для ввода текста в текстовой области на этой веб-странице .Тем не менее, это очень медленно использовать send_key, так как мой текст очень короткий.

from selenium import webdriver

text = "gckugcgaygartty"
link_url ="http://www.bioinformatics.org/sms2/translate.html"

driver = webdriver.Chrome('chromedriver', chrome_options=options)
driver.get(link_url)

driver.find_element_by_tag_name("textarea").clear()
driver.find_element_by_tag_name("textarea").send_keys("gckugcgaygartty")

Затем я попытался заменить send_keys на execute_script (), как показано ниже, но это не сработало (без ошибок, но ничего не изменилось на веб-странице), может кто-нибудь дать мне какой-нибудь совет, пожалуйста?

driver.execute_script("document.getElementById('main_form').getElementsByTagName('textarea')[0].click()")



driver.execute_script("document.getElementById('main_form').getElementsByTagName('textarea')[0].setAttribute('value', 'gckugcgaygartty' )")

1 Ответ

0 голосов
/ 30 марта 2019

Модификация : изменена функция setAttribute со свойством значения

Использовать следующий код:

driver.execute_script("document.getElementsByTagName('textarea')[0].value='your_lengthy_data'")

ИЛИ

driver.execute_script("document.getElementById('main_form').getElementsByTagName('textarea')[0].value='your_lengthy_data'")
...