【问题标题】:How to enter text into a textfield in a web view using UIAutomation如何使用 UIAutomation 在 Web 视图中的文本字段中输入文本
【发布时间】:2013-02-07 20:50:45
【问题描述】:

我的 iOS 应用程序有一个登录页面,其中包含用户名和密码文本字段。这些文本字段位于 Web 视图中。我正在尝试使用UIAutomation 自动化登录过程。我知道使用 UIAutomation 在 Web 视图中处理内容很棘手。我可以使用target.tap({x:100, y:200}); 进入文本字段,但我想让UIAutomation 在点击字段后输入文本。我怎样才能做到这一点?

【问题讨论】:

    标签: ios iphone uiwebview ui-automation ios-ui-automation


    【解决方案1】:

    你可以这样做:

    1. 获取对 webview 的引用

      var webView=window.scrollViews()[0].webViews()[0];
      
    2. 点击要编辑的 textView:

      webView.textFields()[0].tap();
      
    3. 使用键盘

      UIATarget.localTarget().frontMostApp().keyboard().typeString("text");
      

    您可以使用:webView.logElementTree() 查找您的网络视图。

    【讨论】:

    • 这行得通。我就是这样做的,虽然我有自己的小框架让它更容易。
    • 一个重要的警告 - 您需要确保禁用硬件键盘,否则软件键盘将永远不会出现硬件➜键盘➜连接硬件键盘(切换到关闭)另外,我似乎需要一个tap() 和 typeString() 之间的延迟
    • “WKWebView”类型的值没有成员“textFields”
    【解决方案2】:

    是的,这很有可能,但我建议不要通过文本字段的位置,而是通过文本字段的 id/name。另一种方法是遍历应用程序窗口。

    尝试遵循这个苹果的文档 - http://developer.apple.com/library/ios/#documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/UsingtheAutomationInstrument/UsingtheAutomationInstrument.html

    这将为您提供一个良好的开端和许多其他想法。

    【讨论】:

    • 我想这样做,但是任何可用的方法(例如withName())似乎都不适用于 UIWebView 中的文本字段。有什么建议吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    相关资源
    最近更新 更多