如何在空手道中将驱动程序上下文从 Android 切换到 webview

2023-12-13

我正在开发一个使用空手道和 appium 自动化移动应用程序的项目。我正在开发的应用程序似乎是一个混合应用程序。当我启动应用程序时,它会将我重定向到要登录的 Web URL(Web 浏览器),并且我的空手道测试无法找到登录页面下存在的元素。

Feature: android test

  Background: App Preset

    * configure driver = { type: 'android', webDriverUrl : 'xxxxx', start: false, httpConfig : { readTimeout: 120000 } }

  Scenario: android mobile app UI tests
  Given driver { webDriverSession: { desiredCapabilities : "#(android.desiredConfig)"} }
  And driver.click('//android.widget.Button[@text="Get Started"]')
  # Sign details
  And click('#signInName')
  And input('#signInName', '[email protected]')
  And input('#password', '123456')

默认情况下,空手道会让您处于本机应用程序上下文中。您可以通过调用移动命令来检查所有可用的上下文,

def contexts = driver.script("mobile: getContexts")

or

json contexts = driver.http.path("contexts").get()

and print contexts

您应该能够将上下文切换到网络视图,如下所示(而不是WEBVIEW_1使用您从上一步获得的相应网络视图),

driver.setContext("WEBVIEW_1")

然后切换回本机应用程序

driver.setContext("NATIVE_APP")

如果遇到任何问题,请尝试不同的定位器策略

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在空手道中将驱动程序上下文从 Android 切换到 webview 的相关文章

随机推荐

  • 将 href 替换为不同的值

    我有一些 PHP 代码 它可以获取网站的 HTML 代码 然后将其回显到屏幕上 我正在寻找一种扫描 HTML 的方法 然后将所有 href 值替换为另一个值 例如 我有 http somepage com 其中包含 HTML 代码 a hr
  • 如何在 app.json 中添加这些语句?

    我想使用 expo 管理的工作流程在我的应用程序中允许 HTTP 流量 如何将这些语句添加到 app json 文件中
  • SVN 使用通配符限制文件访问

    我接任一个项目的软件主管 现在负责管理该项目的 SVN 存储库 对不同部分的访问由 authz 文件控制 已经为开发人员 主管 测试人员和 cm 控制人员建立了小组 一个文件存在于我们想要限制访问的多个分支和标签中 为了锁定它 除了潜在客户
  • 在 MPI 应用程序中处理信号/正常退出

    如何在 MPI 应用程序中安全地处理信号 例如 SIGUSR1 它应该告诉应用程序其运行时间已过期 并应在接下来的 10 分钟内终止 我有几个限制 在退出应用程序之前 请先完成所有并行 串行 IO 在所有其他情况下 应用程序可以毫无问题地退
  • 在 PHP 中生成 XML 文档(转义字符)

    我正在从 PHP 脚本生成 XML 文档 并且需要转义 XML 特殊字符 我知道应该转义的字符列表 但正确的做法是什么 应该仅使用反斜杠 对字符进行转义还是正确的方法是什么 有没有内置的 PHP 函数可以帮我处理这个问题 我创建了一个简单的
  • Java 中的 StringIndexOutOfBounds

    我这里有两份完全相同的代码副本 除了一个在 for 循环中具有 错误代码 for int i 0 i lt str length i int count 0 char currentChar str charAt i for int j 0
  • 生成动画线

    x y 10 20 50 30 20 20 40 22 45 20 50 35 我想用 Net 创建动画 通常我使用 Windows 窗体 但如果需要的话 我可以使用 WPF 它从 10 20 点开始 实际上 一条线从 10 20 开始 然
  • 使用 JavaScript 删除字符串、将数字保留在数组中

    其他文章讨论根据搜索词从数组中删除字符串 但我试图确定数组中哪些元素是字符串 哪些元素是数字 然后删除所有字符串以返回一个新数组 function filter list l let newArray for let i 0 i lt l
  • 如何在vue js中使用Filepond并使用axios上传文件?

    我需要使用 axios 发送 post 请求 以便使用 Filepond Uploader 上传文件 我该怎么做 我正在使用如下所示的自定义进程处理程序 但它不起作用 processHandler fieldName file metada
  • 使用模板 10 进行依赖注入

    我正在尝试将一些代码从我使用 Prism Unity 开发的旧 Windows 8 1 应用程序迁移到使用 Template 10 和 Unity 的新 UWP 应用程序 我在模板10的文档中看到here你能行override the Re
  • 如何通过 Firebase 管理员通过代理连接到 Firebase?

    目前 我正在使用 Firebase Admin SDK 连接 NodeJS 服务器端应用程序中的 Firebase 数据库 但我没有找到通过代理设置连接 Firebase 的选项 或者它可以检测我的系统HTTP PROXY环境变量 当我运行
  • 控制android中的后退“按钮”

    我想从子活动中获取文本数据值 一切都很好 但是当子活动打开时 我只需单击手机上的后退 按钮 就会抛出异常错误 我在 android NotePad 生命周期控制 toturial 上找到了它 但它很难理解 有人能帮我吗 这是我的代码 pub
  • Entity Framework Core:在 WebAPI 中包含多对多相关对象

    我对 NET 框架不太熟悉 但决定尝试一下 ASP NET Core 和 EF Core 我想制作一个非常简单的 Web API 后端 但在处理多对多关系时遇到问题 我知道我需要为两个实体创建一个关系表 如本文中的示例所示 如何与 EF C
  • 正则表达式 - 超过 10 个字符

    如何指示需要超过 10 个字符的正则表达式 我知道 大于 0 大于 1 但是要求大于 10 的语法是什么 谢谢大家 您使用大括号表示法 例如 正则表达式a 10 将匹配 10 个或更多a人物 a 10 20 将匹配至少 10 个且不超过 2
  • 什么是 REST 资源?

    什么是 REST 资源以及它们与资源名称和资源表示有何关系 我读了一些关于这个主题的文章 但它们太抽象了 让我比以前更加困惑 以下 URL 是资源吗 如果是 该资源的名称是什么以及它的表示形式是什么 URL 的 GET 响应应类似于 id
  • 限制 iPhone 应用程序对服务器的访问

    我正在构建一个客户端 服务器 iPhone 游戏 我希望阻止第三方客户端访问服务器 这有两个原因 首先 我的收入模式是出售客户并赠送服务 其次我想避免促进作弊的客户激增 我正在用 Rails 编写服务器的第一个版本 但我正在考虑在某个时候迁
  • Xamarin,使用 Xlabs 示例中的地理定位

    使用 Xamarin 共享项目 我尝试在我的共享项目中包含 Xlabs 示例中的地理位置功能 但在调用 dependencyService 时遇到问题 我有一个内容页面 其中有我的按钮 其中包含如下命令 Command new Comman
  • Chrome 驱动程序无法在 Azure Web 应用程序上运行

    我使用过 NetCore2 App 并尝试截取给定 URL 的屏幕截图 它在本地运行完美 但部署到 Azure 后在创建 Webdriver 时出现问题 at OpenQA Selenium DriverService ctor Strin
  • LNK1120:1 个未解析的外部和 LNK2019:未解析的外部符号

    我遇到了这两个错误 但似乎找不到有效的解决方案 LNK1120 1 个未解析的外部 错误1错误LNK2019 无法解析的外部符号 public thiscall Vector3D Vector3D class Vector3D const
  • 如何在空手道中将驱动程序上下文从 Android 切换到 webview

    我正在开发一个使用空手道和 appium 自动化移动应用程序的项目 我正在开发的应用程序似乎是一个混合应用程序 当我启动应用程序时 它会将我重定向到要登录的 Web URL Web 浏览器 并且我的空手道测试无法找到登录页面下存在的元素 F