我正在尝试自动发送消息,因此我需要转到一个换行符,我通过使用Shift+Enter来完成,就像在this线程中回答的那样
这是我的代码:
string = f"Lorem ipsum dolor sit amet\nconsectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa.\n\nPS: Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus."
action = ActionChains(browser)
for part in string.split('\n'):
action.send_keys(part)
action.key_down(Keys.SHIFT).key_down(Keys.ENTER).key_up(Keys.ENTER).key_up(Keys.SHIFT).perform()
我应该得到的输出是:
Lorem ipsum dolor sit amet
consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa.
PS: Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
但我得到的结果更像是:
Lorem ipsum dolor sit amet Lorem ipsum dolor sit amet consectetuer adipiscing elit. Aenean commodo ligula eget Lorem ipsum dolor sit amet consectetuer adipiscing elit. Lorem ipsum dolor sit amet consectetuer adipiscing elit. Lorem ipsum dolor sit amet consectetuer adipiscing elit. Lorem ipsum dolor sit amet consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. PS: Cum sociis natoque penatibus et magnis dis parturient montes, Lorem ipsum dolor sit amet consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. PS: Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. nascetur ridiculus mus.
Aenean commodo ligula eget dolor. Aenean massa.
Aenean commodo ligula eget dolor. Aenean massa.
Aenean commodo ligula eget dolor. Aenean massa.
dolor. Aenean massa.
有什么想法吗?提前谢谢
编辑:为了获得更多的上下文信息,我想在messenger.com中编写,因此我不能只执行Keys.ENTER,我必须执行SHIFT+ENTER
您必须重置操作以删除内存中的操作,否则在执行操作时,它也将重复前面的操作:
如果您使用的是selenium v3:
有两种解决方案:
第一个:
在for循环内移动操作声明:
这将重置操作顺序
第二次接近:
为此,在操作链中有reset_actions()方法,但有一个:
https://github.com/SeleniumHQ/selenium/issues/6837
因此,请使用以下方法:
如果您使用的是selenium v4:
该错误已修复:
要安装selenium v4:
pip install selenium==4.0.0.a7
与此同时,我已经用一种可怕的、不可伸缩的方式完成了这项工作,但现在它完成了这项工作
代码如下:
我不会接受这个答案,因为它非常糟糕,所以如果有人想给出一个更好、更清晰的答案,我完全欢迎
如果对你有用,请现在告诉我
字符串由
newline
运算符分割,因此必须使用额外的换行符对其进行增强我得到的结果是:
更新-作为单个消息发送
如果你想把它作为一个单一的消息发送,那么你就不必拆分它
更新2-特别针对信使
如果我是对的,您希望按多个键在messenger中获得新行,因此您可以尝试
text_area.send_keys(Keys.SHIFT + Keys.ENTER).perform();
相关问题 更多 >
编程相关推荐