#python #selenium #automation
#python #selenium #автоматизация
Вопрос:
Я могу найти элемент и щелкнуть по нему:
driver.find_element_by_xpath("//*[@id='tinymce']/table/tbody/tr[2]/td[1]").click()
Когда я пытаюсь отправить ему ключи с:
driver.find_element_by_xpath("//*[@id='tinymce']/table/tbody/tr[2]/td[1]").send_keys("test")
Я получаю
Traceback (most recent call last):
File "C:UsersjlesslarDocumentsScriptspost robot automater.py", line 60, in <module>
driver.find_element_by_xpath("//*[@id='tinymce']/table/tbody/tr[2]/td[1]").send_keys("test")
File "C:Python27libsite-packagesseleniumwebdriverremotewebelement.py", line 479, in send_keys
'value': keys_to_typing(value)})
File "C:Python27libsite-packagesseleniumwebdriverremotewebelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "C:Python27libsite-packagesseleniumwebdriverremotewebdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:Python27libsite-packagesseleniumwebdriverremoteerrorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
WebDriverException: Message: unknown error: cannot focus element
(Session info: chrome=72.0.3626.81)
(Driver info: chromedriver=2.45.615291 (ec3682e3c9061c10f26ea9e5cdcf3c53f3f74387),platform=Windows NT 10.0.17134 x86_64)
Насколько я могу судить, td — это то, куда я хочу отправить ключи, но в Интернете говорится, что у меня должно быть либо текстовое поле, либо входной тег, доступный мне для работы send_keys (чего у меня нет)
Руководство было бы высоко оценено.Спасибо!
Ответ №1:
Вы должны иметь возможность изменять значение innerHTML с помощью JS с помощью execute_script()
Сначала получите свой элемент:
el = driver.find_element_by_xpath("//*[@id='tinymce']/table/tbody/tr[2]/td[1]")
Затем попробуйте, установив непосредственно значение innerHTML:
driver.execute_script('arguments[0].innerHTML = "test";', el)