在应用程序中自动化 iOS webkit

Automate iOS webkit within application

我目前正在开发 ios 应用程序。该应用程序中的一项功能需要一些 WebKit 自动化。我正在寻找类似于 selenium 所做的事情;我想使用其 ID 或 Xpath 将文本输入文本字段,而不是使用其 ID 或 Xpath 按下按钮。

示例:将文本输入 google.com 上的 google 搜索栏,然后以编程方式单击搜索。

我已经在 selenium (Java) 中完成了上述操作。虽然我正在寻找一种在 ios 上执行此操作的方法(使用 swift)。无论如何我可以在本地做这个吗?或者有没有我可以用来做这个的椰子?如果没有,是否可以使用 swift 到 运行 一个 javascript 文件来执行此操作?

我也知道一个名为 WKZombie 的 cocoapod,它完全可以满足我的需要,尽管它的文档相当混乱,而且它是一个无头浏览器(我希望用户看到正在发生的事情,所以它不会'虽然我可以抓住 HTML 并在没有其他方法的情况下显示它)。我也不认为 appium 可以工作,因为我希望它可以在独立应用程序中工作。

(此外,这是我的第一个 post,所以对于任何不正确的格式或类似问题,我深表歉意)

要在您的应用程序中托管浏览器,class 您需要使用的是 WKWebView (replaces the older UIWebView). The evaluateJavaScript WKWebView 的方法可以用于将 JS 注入 WKWebView 实例。您可以将文本框填充、按钮单击魔法包含到您正在注入的 JS 中。

您可以通过 JavaScript:

WKWebView 视图中加载的页面进行通信
  • 最简单的方法是使用 evaluateJavaScript(_, completionHandler),它允许您注入代码,例如更改 DOM、触发操作等

  • 或者,您可以在创建可以回调到您的 Swift 代码的 Web 视图时注入用户脚本 (WKUserScript),这需要更多设置,但也是更强大。