如何在空手道中将驱动程序上下文从 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 的相关文章

  • 报告中空手道测试套件的运行时间

    我正在使用空手道 9 0 0 并并行运行功能文件并生成 使用空手道并行运行代码的黄瓜报告 问题是 在功能概述的报告中 其显示的总执行时间为 功能 1 执行时间 功能 2 执行时间 功能 3 执行时间 总执行时间 但如果我在超过 1 个线程中
  • 使用appium进行Android UI自动化测试

    我几周后刚刚开始进行 Android UI 自动化测试 我曾经尝试过使用robotium 现在我想更改为appium框架 我的问题是 我读到appium是一个测试webview应用程序的测试工具 那么其他不是 webview 应用程序的应用
  • 空手道——并行执行失败[重复]

    这个问题在这里已经有答案了 我观察到 当我使用 Runner parallel getClass 1 在 Maven 构建中运行测试 功能文件 时它工作正常 但是当我增加像 Runner parallel getClass 5 这样的线程数
  • 在功能文件中使用空手道配置参数

    空手道标头示例 https github com intuit karate blob master karate demo src test java demo headers headers feature不显示如何访问除baseUrl
  • 当我们在 logback-test.xml 中将日志级别设置为“DEBUG”运行时,出现“Java Heap”内存问题

    Getting Java Heap当我们在 logback test xml 中运行日志级别为 DEBUG 的功能时出现内存问题 我们已经运行了大约 400 个功能 你能帮忙解决这个问题吗 它的 Maven 项目 请升级到0 9 0版本
  • 如何在空手道加特林中每秒加载更多请求

    我正在尝试重用空手道脚本并使用加特林执行负载测试 定义的场景是每秒加载 50 个用户 持续 10 秒 对 500 个用户进行负载测试 但是 gatting 报告中每秒的请求数不超过 20 个请求 如果我做错了什么 请告诉我 执行空手道脚本的
  • mac下appium的安装目录

    我已经从 MAC 终端安装了 appium 1 5 1 安装没问题 但由于某种原因我需要安装它的路径 谁能告诉我安装目录在哪里 如果您安装了 GUI appium 应用程序 您可以在 Mac 的 Launchpad 中单击其图标的应用程序
  • 如何通过黄瓜空手道项目进行调试

    我继承了一个Java Maven Cucumber项目 我对黄瓜相当陌生 在其中一个文件夹中我有一堂这样的课程 import com intuit karate junit4 Karate import org junit runner R
  • 以编程方式启动时 Appium 不会初始化驱动程序

    我正在使用 Java 和 Selenium 通过命令行初始化 Appium 以便在 Android chrome 浏览器上运行测试 然而 该过程运行无限时间 并且代码来自 DesiredCapabilities 该行没有被执行 代码 Pro
  • 如何处理空手道测试中的签名请求?

    首先 感谢构建空手道 它对于测试 API 和 UI 非常有用 我们正在使用它来测试许多端点 但我们想知道是否有一种方法或哪种方法是处理带有签名作为标头中请求的一部分的请求的最佳方法 在我们的例子中 我们有两个标头 ApiKey 这个值总是相
  • 从应用程序内运行仪器测试并等待结果

    我正在开发一个 QA 自动化解决方案 可以在 Android 上记录 回放 QA 测试 一个关键的业务要求是在回放录制的测试时不依赖于连接的 PC 为此 我尝试在没有连接电脑的情况下运行仪器测试 具体来说 Appium UiAutomato
  • 想要测试空手道 API 中整数值应 >3 的断言

    json 响应是 值 0 23 我想在这里放置断言值应该小于 3 那么如何做到这一点 尝试了文档中的一些示例 但它们适用于此处的 jsonenter 代码的数组格式 场景 显示任何向 CS 发出 DB 请求所需的最短时间 该值是数据库访问性
  • 过滤空手道测试响应对象以获得子列表?

    鉴于此功能文件 Feature test Scenario filter response def response a a b a c a d ab e ab f ab g ac h ac i ac
  • url 中的空手道框架符号编码

    我有这个 Background url http localhost 15672 api exchanges 2F my exchange Scenario Given path publish 这里的问题是 url 被解析为 http l
  • 无法在 Eclipse 中对空手道模板项目运行 mvn 测试

    我克隆了空手道模板 即https github com karatelabs karate template https github com karatelabs karate template我能够在 Eclipse IDE 上运行测试
  • 无法在真实设备上的 iOS 10 上运行 Appium 测试

    自从将我的设备和 xCode 更新到 iOS 10 和 Xcode 8 以来 我一直无法在真实设备上成功设置 Appium 测试 不过 我在模拟器上运行得很好 以下是我的功能设置 DesiredCapabilities cap new De
  • 在 Android 中使用 appium 在一个会话中自动化多个应用程序

    如何在 Android 中使用 appium 在一个会话中自动化多个应用程序 假设想要自动化一个计算器应用程序 然后是一个设置应用程序 如果您正在谈论使用同一会话同时自动化多个应用程序 那么这是不可能的 因为一个会话只能自动化一个应用程序
  • 使用 match every contains 进行 json 数组项断言

    我想在响应数组下的每个项目中添加包含 训练 的技能数组断言 我怎样才能使用匹配每种格式来做到这一点 match each response contains password abc123 不使用 JsonPath 表达式 我预计下面的示例
  • Karate 是否能够验证下载端点的 Excel 文件? [复制]

    这个问题在这里已经有答案了 我正在尝试确认从 api 下载的文件 在查看了来自的推荐后如何使用空手道测试下载 api https stackoverflow com questions 49081135 how to test downlo
  • 如何确定 Android UI 元素的 XPATH。硒 + Appium

    我目前正在使用 Appium 和 Selenium 自动化 Android 应用程序 并且在通过 ID 定位元素时遇到了一些问题 我想使用 XPATH 但不知道如何获取 android UI 元素的 XPATH 有谁知道如何确定元素的 XP

随机推荐

  • 将 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