如何在Java/Selenium中为WhatsApp消息添加自定义数据
在Java Selenium中实现WhatsApp消息提及与内容分离
不用依赖JavaScript,通过模拟WhatsApp Web原生的交互逻辑就能实现提及功能,核心是触发@选择器并完成联系人选择,以下是具体实现步骤和代码:
步骤1:定位消息输入框
WhatsApp Web的消息输入框通常是一个contenteditable="true"的div元素,先通过显式等待确保元素加载完成:WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10)); WebElement inputBox = wait.until(ExpectedConditions.visibilityOfElementLocated( By.xpath("//div[@contenteditable='true' and @data-tab='10']") ));注:不同WhatsApp Web版本的
data-tab值可能不同,可通过浏览器开发者工具自行确认步骤2:输入基础消息内容
先输入不需要提及的普通内容:inputBox.sendKeys("大家好,");步骤3:触发并选择提及联系人
输入@符号唤起联系人下拉列表,输入联系人名称后选择匹配项:// 输入@触发提及选择器 inputBox.sendKeys("@"); // 等待下拉列表加载 WebElement contactDropdown = wait.until(ExpectedConditions.visibilityOfElementLocated( By.xpath("//div[@role='listbox']//span[@title='张三']") )); // 选择目标联系人 contactDropdown.click();步骤4:补充剩余消息内容
选择完成后,继续输入后续内容,此时提及的联系人会自动和普通内容保持格式分离:inputBox.sendKeys(" 请查看最新通知");步骤5:发送消息
模拟回车发送:inputBox.sendKeys(Keys.ENTER);
关键注意事项
- 确保使用显式等待替代Thread.sleep,避免因页面加载延迟导致元素定位失败
- 联系人的title属性是其在WhatsApp中的昵称,需根据实际情况修改
- 如果需要提及多个联系人,重复步骤3即可
内容的提问来源于stack exchange,提问作者Unknown
相关产品推荐
相关产品推荐

