我在使用Selenium中的多行输入时遇到了很多麻烦。根据我在Google上学到的信息,\ n字符本质上输入了新行。这样一来,我就无法将多行块输入作为一个段落文本发送。我希望能够用Shift键(同时)击键替换\ n字符。
我尝试使用不同的方法,但是它们似乎都不起作用。
我要发送的字符串是:
reply_messages = [
"FREE PILLOW - Thank you for your patience! \n To redeem your FREE pillow, just use the LINK IN OUR BIO and ADD TO CART - just cover shipping, no additional charges!"]
我最终用以下行发送该字符串:reply_input.send_keys(reply_messages)
当我使用硒输入reply_messages时,它将每行输出为单独的行。
基本上,它将发送第一行,将其输入到聊天窗口中,然后发送第二行,并将其输入到聊天窗口中,而不是输入第一行,添加一个换行符,输入第二行,然后发送整个间隔的段落作为一条消息。
因此,我想用换行输入击键替换换行符,以便浏览器不会将换行符注册为自己的输入击键。
使用换行符时,字符串将作为两个单独的消息发送。
答案 0 :(得分:0)
\n
是转义符,表示换行符。您按下以获取该字符的键盘键与您的问题没有任何关系-Enter和Shift + Enter都向聊天文本输入框中添加了\n
。
重要的是聊天窗口的编程方式。在确定按下的按钮是否意味着应该发送消息时,聊天窗口不是在寻找文本字符,而是在寻找键盘键。
使用Selenium,您需要模拟键盘按键,而不是模拟填充到文本框中的文本。签出this SO answer。如该答案所述,您将希望使用Actions#keyDown
或Actions#keyUp
之类的东西。