python - 在 python 中使用 selenium 将密钥发送到文本区域不起作用
问题描述
我试图通过制作一个进入 Instagram 帐户并评论帖子的机器人来学习硒
这是我的代码:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
site = webdriver.Edge('C:\\P\\Automation\\MicrosoftWebDriver')
site.get('https://www.instagram.com/example_account/')
ref = site.find_element_by_xpath("//*[@id=\"reactroot\"]/section/main/div/div/article/div[1]/div/div[1]/div[1]/a")
site.get(ref.get_attribute('href'))
txt = site.find_element_by_xpath('//*[@id="react-root"]/section/main/div/div/article/div[2]/section[3]/form/textarea')
txt.send_keys('test')
txt.send_keys(Keys.ENTER)
问题是当我将键发送到评论元素时
<textarea aria-label="Add a comment…" placeholder="Add a comment…" class="Ypffh" autocomplete="off" autocorrect="off" style="height: 18px;"></textarea>
我第一次尝试发送密钥时间和第二次运行命令时它什么都不做:
txt.send_keys('test')
它给了我一条错误消息:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webelement.py", line 479, in send_keys
'value': keys_to_typing(value)})
File "C:\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webelement.py", line 628, in _execute
return self._parent.execute(command, params)
File "C:\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 320, in execute
self.error_handler.check_response(response)
File "C:\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: Stale element reference
希望得到一些帮助,谢谢!
解决方案
在sendkeys()
使用click()
方法单击 textarea 内部然后尝试插入文本之前。
推荐阅读
- python - 如何在 Windows 上的 python 中安装 METIS 包?
- python - 如何处理读取包含多种语言的文件时的错误
- c - BlueZ D-Bus C , 应用 BLE
- spring - Dockerized Spring boot 和 Zuul
- reactjs - Web 进程未能绑定到 $PORT
- autofixture - 在 AutoFixture 中自定义匿名序列的创建
- keras - 使用来自 Keras 应用程序的模型,无需预训练权重
- android - Xamarin Android BottomBarBadge 无法正确显示 100+ 的计数
- r - 从命令提示符在 .Rmd 上运行 .Rexec
- scikit-learn - 如何为添加到 CountVectorizer 转换数据的非文本特征设置名称?