【问题标题】:Get the current UIWebVIew element获取当前 UIWebVIew 元素
【发布时间】:2013-09-10 07:34:37
【问题描述】:

我目前正在使用 KIF 框架为 iOS 应用程序开发一些 UIAutomation 测试。在某些时候,应用程序必须打开一个带有登录页面的 WebView,输入用户名和密码,然后按下登录按钮,所有这些都必须自动化。

我的问题是:知道应用程序在某个时刻显示该登录页面,我怎样才能获得 WebView UI 元素,如下所示:

UIWebView *webView = // . . . ?

另外,如果您能告诉我如何获取这两个文本字段(用户名和密码),那就太好了,例如:

UITextField *textField = // ... ?

谢谢。

【问题讨论】:

  • 你的回答很好,它对我有帮助,所以我谢谢你,但是如何获得那个 webView?这是我的问题。
  • 我的回答是我的帮助:D,让我知道这是否有意义......或者我是否真的在解决你的问题
  • @FlaviusAnton 检查我编辑的答案,或者如果您满意,请正确勾选我的答案。在高级中谢谢
  • 您的问题中的一件事没有意义.. webview 登录页面由 html 元素组成.. 您想将它们作为 UIKit 元素检索吗?这两个完全不同..
  • 忽略那些试图帮助的人并不酷吧

标签: ios objective-c cocoa-touch uiwebview kif-framework


【解决方案1】:

这个想法是你想在 webview 加载之后 获取 webview。 为此,您必须将通知代码放入 webview 委托函数 webViewDidFinishLoad

在那里.. 你可以放一个 NSNotification.. 如果你已经使用了 KIF 一段时间,你知道只有在收到 NSNotification.. 之后才能实例化动作。this 是 kif 中的方法:

+ (id)stepToWaitForNotificationName:(NSString*)name object:(id)object;

至于查找 UIWebView 本身,您只需使用与 iOS 中的任何其他 UIElement 相同的 accessibility label

【讨论】:

    【解决方案2】:

    使用此代码:

    NSString *myText = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.textContent"];
    

    OR 对于所有数据

    NSString *html = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.outerHTML"];
    

    Check this link

    我希望这段代码对你有用。

    【讨论】:

    • 是的,这看起来很棒,但只有在我掌握了那个 webview 之后。首先,我该怎么做?
    猜你喜欢
    • 1970-01-01
    • 2017-10-12
    • 2012-08-04
    • 2011-01-30
    • 1970-01-01
    • 2016-11-18
    • 2013-03-01
    • 1970-01-01
    • 2019-10-07
    相关资源
    最近更新 更多