python - 使用 Selenium 实现 WhatsApp Web 自动化随机消息

标签 python selenium random automation whatsapp

请查看第一条消息下面的更新

我正在创建一个机器人来从 WhatsApp Web 发送随机消息。

msg_1 = ["Hey, ", "Hello, "]
print(random.choice(msg_1))

上面的代码工作正常,但是当我在 Selenium 中将它与 send_keys 一起使用时,结果只是逗号和空格。

msg_1 = ["Hey, ", "Hello, "]   

campo_msg = self.driver.find_element_by_xpath('...')
campo_msg.click()      # Tried with a click to see If It solves the problem
campo_msg.send_keys(random.choice(msg_1))

结果总是“,” in campo_msg...如果我只使用send_keys发送一个字符串,它工作正常,那么我做错了什么?


更新

问题是我的列表中包含带有“á”的单词,因此它仅在“á”之后发送以下字符。

按照 PDHide 建议使用 ActionChains,我现在可以使用 random.choice() 发送正确的字符串。问题是,有时它看起来像是在点击不应该的元素......这是一个例子:

...
campo_msg = self.driver.find_element_by_xpath(
                '/html/body/div[1]/div/div/div[4]/div/footer/div[1]/div[2]/div/div[2]')
campo_msg.click()
    
webdriver.ActionChains(self.driver).send_keys(random.choice(msg_1) + primeiro_nome + '.').perform()
campo_msg.send_keys(Keys.SHIFT + Keys.ENTER)
campo_msg.send_keys(Keys.SHIFT + Keys.ENTER)
    
webdriver.ActionChains(self.driver).send_keys(random.choice(msg_2) + random.choice(msg_3)
                                                          + random.choice(msg_4)).perform()
# The line above is were the code makes a click on an element that was not even on the code.

它发送正确的 key ,但随后它会点击随机元素。

最佳答案

改用 Action 类

msg_1 = ["Olá, ", "Hello, "]  
campo_msg.click()  
webdriver.ActionChains(driver).send_keys(random.choice(msg_1)).perform()

这似乎是一个有趣的问题,如果您在任何字符之后发送 á ,它就会选择所有其他字符。这就是为什么你只得到最后一个字符。 á 选择全部,下一个字符将替换前面的字符串。您可以通过循环遍历“olál”的每个字符并 sleep 2 秒来验证这一点。

关于python - 使用 Selenium 实现 WhatsApp Web 自动化随机消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66226569/

相关文章:

python - 如何根据列表中的值在字典列表中查找字典?

javascript - Protractor sendKeys 到模态返回元素不可见

java - 从 div 类下拉列表中选择 - Selenium

algorithm - 使用 rand5() 计算 rand7()

c - 随机数生成器 objective-c

c# - 碰撞时播放随机声音片段 (Unity)

c++ - 你如何让 python 识别读取预编译的共享文件?

python - 从 python 元组中的特定元素打印

python - 在函数中更新 matplotlib 图像

selenium - 如何在 Robot Framework 中执行 JavaScript