如何解决WhatsApp 使用 Python Selenium 的多行消息
我找到了一个解决方案(此链接中的示例 How to line break in WhatsApp with Selenium when sending a message?
但是我在使用 Python 和 Selenium 通过 WhatsApp 发送多行消息时遇到问题。
这是我的代码:
message = excel_data['Message'][msg]
# Locate search box through x_path
search_box = '//*[@id="side"]/div[1]/div/label/div/div[2]'
person_title = wait.until(lambda driver:driver.find_element_by_xpath(search_box))
# Clear search box if any contact number is written in it
person_title.clear()
# Send contact number in search box
person_title.send_keys(str(excel_data['Contact'][count]))
count = count + 1
msg=msg+1
# Wait for 2 seconds to search contact number
time.sleep(2)
try:
# Load error message in case unavailability of contact number
element = driver.find_element_by_xpath('//*[@id="pane-side"]/div[1]/div/span')
except NoSuchElementException:
# Format the message from excel sheet
message = message.replace('{customer_name}',column)
person_title.send_keys(Keys.ENTER)
actions = ActionChains(driver)
actions.send_keys(message)
actions.send_keys(Keys.ENTER)
actions.perform()
我有一个包含 2 列的 Excel 文件:1° 列电话号码和 2° 列消息
如果消息是单个消息,则一切正常。 如果消息在多行上不起作用。
例如:
Message =
Hello
Gundam How are you?
I'm well
WhataApp 发送 3 条消息:
First with Hello
Second with Gundam How are you?
Third with I'well
我需要多行一体式消息
你能帮我修改我的代码吗?
我尝试添加它但不起作用:
ActionChains(driver).send_keys(message).perform()
ActionChains(driver).key_down(Keys.SHIFT).key_down(Keys.ENTER).key_up(Keys.SHIFT).key_up(Keys.ENTER).perform()
ActionChains(driver).send_keys(Keys.RETURN).perform()
非常感谢您的帮助
解决方法
使用硒键:
from selenium.webdriver.common.keys import Keys
那么:
val="text\text"
val =val.replace("\n",(Keys.SHIFT+Keys.ENTER))
只需将 '\n' 或 '\r\n' 替换为 (Keys.SHIFT+Keys.ENTER)
所以在你的情况下:
首先检查什么是行结束符
print((message).encode("unicode_escape"))
然后将其替换为 Keys.shift+enter
message=message.replace("\n",(Keys.SHIFT+Keys.ENTER))
你可以直接使用unicode字符:
elem.send_keys("first\ue008\ue007second")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。