iphone - 如何在 Cocoa for iPhone 中模拟鼠标点击 UIWebView?

标签 iphone cocoa-touch automation uiwebview mouseclick-event

我正在尝试为 iPhone 应用程序设置自动化单元测试。我正在使用 UIWebView 并需要模拟对不同链接的点击。我试过doing this with JavaScript ,但它不会产生与我手动单击链接时相同的结果。主要问题是具有 target 的链接属性集。

当您手动单击标准“弹出”链接(例如 <a href="http://example.com" target="_blank"> )时,UIWebView 将忽略单击事件并且不会导航到任何内容。如果您随后尝试通过 JavaScript 自动单击此链接 dispatchEvent()方法,UIWebView将完全忽略target属性,将在当前页面正常打开链接。

我需要自动单元测试来生成与手动单击链接时完全相同相同的结果。

我相信此自动化单元测试正确工作的唯一方法是在特定的 x/y 坐标(即链接所在的位置)模拟鼠标单击。由于单元测试仅在内部使用,因此私有(private) API 调用就可以了。

看来这应该是可能的,因为 iPhone 应用程序 isimulate似乎做了类似的事情。

有没有办法在框架中做到这一点?

我发现了一个类似的问题,标题为Simulate mouse click to window instead of screen ,不过我猜这个方法只对 OS X 有效,对 iPhone OS 无效。

最佳答案

我想您可以通过直接在 UIView 上调用 touchesBegan/touchesEnded 方法来模拟触摸(检查 UIResponder 类) .

关于iphone - 如何在 Cocoa for iPhone 中模拟鼠标点击 UIWebView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2703045/

相关文章:

iphone - 如何长时间在后台运行iphone应用程序?

android - Appium 测试中的 NoSuchElementException。无法正确获取定位器

iphone - 将文件写入/保存到 iPhone

iphone - MPMoviePlayerController 和本地 m3u8 文件

objective-c - 非 rootViewController View 中的 NavigationController 问题

scripting - 自动化 GDB 调试 session 的最佳方法是什么?

java - Chrome/Firefox 网络浏览器自动化收集数据

iphone - UIApplicationDidEnterBackgroundNotification

iphone - 需要 iPhone 屏幕录制

iphone - 为 MDM(移动设备管理)设置 Snow Leopard 服务器