javascript - Python Selenium send_keys() 文本文件内空白区域的错误原因
问题描述
我在这里遇到了一个有趣的情况。我正在尝试为我的 Instagram 帐户自动化流程,当有人关注我时,向他发送直接消息,让他说“谢谢”之类的话。在此文本中还包含表情符号。所以我试图让它与表情符号一起工作,在我终于让它工作之后,我发现.send_keys()
尝试从我的 .txt 文件发送文本的时间由于其中的空白区域而无法正常工作。例如,假设我在里面有这个文本:
My name is Bill
I'm 22
由于它们之间的空白区域,这将不起作用。但是,如果我像这样连续写它们,那就My name is Bill I'm 22
完全没问题了。所以我的问题是这样的。我想让它像第一个例子一样工作。任何人都可以在这里帮助我解决我的问题吗?
这是我为文本编写的代码:
with open(path + '\\text.txt', encoding='utf-8') as t_f:
txt = t_f.read()
#Here is the element for typing my message
text_element = browser.find_element_by_xpath("""//*[@id="react-root"]/section/div/div[2]/div/div/div[2]/div[2]/div/div[2]/div/div/div[2]/textarea""")
#Here it processing the 'txt' to be able to have emojis
browser.execute_script("arguments[0].innerHTML = '{}'".format(txt),text_element)
text_element .send_keys('.')
text_element .send_keys(Keys.BACKSPACE)
解决方案
在 instagram 、 facebook 等 "\n" 是字符串的结尾。您必须改用 enter + shift 。
当你有多行时,它实际上以 '\n' 结尾
所以使用类似的东西:
text_element.click()
for part in txt.split('\n'):
action = webdriver.ActionChains(driver)
action.send_keys(part)
action.key_down(Keys.SHIFT).key_down(Keys.ENTER).key_up(
Keys.ENTER).key_up(Keys.SHIFT).perform()
推荐阅读
- powershell - Powershell 输出的自定义字体颜色
- css - 如何在侧面导出默认设置单词?
- c++ - 998'244'353 中单引号的含义
- r - Rmarkdown 不会编织到 HTML xcrun:mac 上的错误
- python - 根据另一个一维数组的值访问二维数组索引?
- sql - 优化 SQL 交叉连接,检查其他列中是否有任何数组值
- reactjs - 如何在 React js 中通过 id 过滤组件
- sql - 拒绝向所有用户和角色更新列
- java - 如何按 id 降序对具有 id 属性的类的列表进行排序?
- ios - 一些带有 CAGradientLayer 的视图不渲染渐变