objective-c - cocoa 自动化WebView

标签 objective-c cocoa

我正在研究制作一种机器人测试浏览器。与 Selenium 类似,但我们可以使用它对我们的网站进行全面的集成测试。我想知道是否可以创建一个 Cocoa 应用程序,在 WebView 中加载网页,并以编程方式发送点击事件。我知道你可以使用:

- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script

发送 js 点击事件,但如果你可以将点击事件发送到 DOMElements 本身,那就更好了。这样您就可以测试文件上传和其他无法通过 javascript 访问的元素(如 flash)。有谁知道这是否可能?

最佳答案

您可以使用 WebView-windowScriptObject 方法(返回 WebScriptingObject*)来获取与 JavaScript Node 对象完全对应的 DOMNode* 对象> 对应于 JavaScript window 对象)或任何框架的 -DOMDocument 方法,以返回该框架的 JavaScript document 方法。

示例:

DOMDocument* d = [[webView mainFrame] DOMDocument];
[[[d getElementsByTagName:@"a"] item:0] click];

关于objective-c - cocoa 自动化WebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1256219/

相关文章:

ios - 从 Objective C View Controller 引用 Swift View Controller

ios - 有没有办法通过 Haneke 预取图像?

iphone - 核心数据多对多关系-谓词问题

objective-c - 为什么卸载的类在 Cocoa 中仍然可以访问?

iphone - AVAudioPlayer 泄漏?

objective-c - Objective C 中可变数量的方法参数——需要一个例子

objective-c - Swift 中选定的 CollectionView 单元格外观

swift - nsbutton 单击没有调用操作方法 - cocoaprogramming with swift

objective-c - 与类型 id<NSTextFieldDelegate> 不兼容

swift - 如何以编程方式打开 Safari Extension ToolbarItem 弹出窗口