java - 适用于 Mac OS 的 Appium:有没有办法在 Messages 应用程序中正确发送 Enter 键?
问题描述
我正在实现一个使用 Appium for Mac 的框架来测试本机 MacOS 应用程序。我在执行发送消息应用程序中的 Enter 键的简单命令时遇到困难,这是发送消息所必需的。为了模拟这一点,我使用 Selenium 方法调用 sendKeys(Keys.ENTER)。
这是我尝试过的。
- sendKeys(Keys.RETURN) 做同样的事情。
- Actions(驱动程序).sendKeys(Keys.ENTER).build().perform()
- 我尝试将 WebDriver 创建为 IOSDriver 以查看它是否可能是一个强制转换问题,但也无济于事。
- 使用 Robot 类不是我们需要的,因为我们的代码需要能够在工作站被锁定的情况下运行。
- 我尝试将 ENTER 键连接到我要发送的消息,也无济于事。
- 尝试在活动监视器中按 ENTER 键时,不显示相同的符号;它只在消息中这样做。我怀疑它可能与编码有关?
WebElement webElement = appiumForMacDriver.findElement(ELEMENT_LOCATOR);
appiumForMacDriver.sendKeys(webElement, message);
appiumForMacDriver.sendKeys(webElement, Keys.ENTER);
然而,它并没有实际发送消息,而是简单地输入这个符号:</p>
看起来 Appium for Mac 非常初级,不支持很多基本功能。有没有我可以采取的步骤或解决方法来实际提交 Enter 键?
解决方案
导入actionchains
并尝试如下操作:
WebElement webElement = appiumForMacDriver.findElement(ELEMENT_LOCATOR);
ActionChains(appiumForMacDriver).move_to_element(webElement).click().perform()
Actionchains(appiumForMacDriver).sendKeys(message).perform();
推荐阅读
- sqlite - Saving a list with SQL
- google-cloud-platform - ImportError:无法从“google.cloud.bigquery.external_config”导入名称“HivePartitioningOptions”
- asp.net-identity - 将用户从 .NET 4.x MVC 应用程序自动登录到使用 IdentityServer4 的 .NET 5 应用程序的适当方法?
- javascript - 无法获取“类名”的类型定义
- javascript - 验证输入文件
- visual-studio-code - VSCode 扩展 api – 使用 ThemeIcon 的文件类型/扩展图标
- oracle - XML getElementByTagName 路径
- python - 使用 Git 和 Github 仅下载文件的“差异”?
- sql - 带有 group by 的 select 语句中的相关子查询
- reactjs - React无法读取未定义的属性 - Array.map(
)