Замена перевода строки на shift-enter в селеновом рубине - PullRequest
1 голос
/ 03 июля 2019

У меня было много проблем с многострочными входами в Selenium. Из того, что я узнал в Google, символ \ n по существу входит в новую строку. Это делает его таким, что я не могу отправить многострочный блок ввода в виде одного абзаца. Я хочу иметь возможность заменять символы \ n одновременным нажатием клавиши Shift-Enter.

Я пробовал использовать разные методы, но ни один из них, похоже, не работает.

Строка, которую я пытаюсь отправить:

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, он выводит каждую из строк как отдельные строки.

По сути, он отправит первую строку, введет ее в окно чата, затем отправит вторую строку и введет ее в окно чата, вместо того, чтобы вводить первую строку, добавлять разрыв строки, вводить вторую строку и отправлять весь этот разделенный абзацем как одно сообщение.

Я хочу, таким образом, заменить разрыв строки нажатием клавиши Shift-Enter, чтобы браузер не регистрировал новую строку как собственное нажатие клавиши Enter.

С переводом строки строка отправляется в виде двух отдельных сообщений.

1 Ответ

0 голосов
/ 05 июля 2019

\n является escape-символом, представляющим разрыв строки. Клавиши клавиатуры, которые вы нажимаете, чтобы получить этот символ, не имеют ничего общего с вашей проблемой - Enter и Shift + Enter обе добавляют \n в поле ввода текста чата.

Что делает важно, как запрограммировано окно чата. При принятии решения, означает ли нажатие кнопки сообщение об отправке, окно чата не ищет текстовые символы, оно ищет клавиши клавиатуры.

С Selenium вам нужно будет имитировать нажатия клавиш клавиатуры, а не текст, который вводится в текстовое поле. Проверьте этот SO ответ . Как отмечено в этом ответе, вы захотите использовать что-то вроде Actions#keyDown или Actions#keyUp.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...