我正在研究制作一种机器人测试浏览器。与 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/