ruby - 启动画面后 Appium 测试不再进行
问题描述
我希望有人能帮忙。我正在测试三个应用程序,一旦应用程序启动,正确的行为应该是,启动屏幕显示几秒钟,然后显示登录页面。
我正在尝试使用 appium 自动执行此操作,但是一旦自动测试打开启动画面,测试就会结束。我看到此错误消息:
NoSuchElementError: An element could not be located on the page using the given search parameters. at AndroidUiautomator2Driver.findElOrEls (C:\Users\zminhas\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\appium-android-driver\lib\commands\find.js:75:11)
这是我的 env.rb 代码:
require "appium_lib"
require "pry"
opts = {
caps: {
deviceName: :Anyname,
platformName: :Android,
app: 'C:\Users\zminhas\Desktop\three_app_automation\features\support\biometrics.apk',
appPackage: "com.hutchison3g.planet3",
appActivity: ".SplashScreenActivity",
noReset: true
},
appium_lib: {
#wait_timeout: 30
}
}
Appium::Driver.new(opts, true).start_driver
Appium.promote_appium_methods Object
还有我的 hooks.rb 代码:
Before do
$driver.start_driver
end
After do
$driver.driver_quit
end
这是完整的结果屏幕:
$ cucumber
*** WARNING: You must use ANSICON 1.31 or higher (https://github.com/adoxa/ansicon/) to get coloured output on Windows
Feature: All external URLs work as expected within the More Tab
2019-11-11 12:08:13 WARN Selenium [DEPRECATION] Selenium::WebDriver::Error::TimeOutError is deprecated. Use Selenium::WebDriver::Error::TimeoutError (ensure the driver supports W3C WebDriver specification) instead.
Scenario: test # features/more_tab.feature:3
Given I see the enter number screen # features/step_definitions/more_tab_steps.rb:1
An element could not be located on the page using the given search parameters. (Selenium::WebDriver::Error::NoSuchElementError)
NoSuchElementError: An element could not be located on the page using the given search parameters.
at AndroidUiautomator2Driver.findElOrEls (C:\Users\zminhas\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\appium-android-driver\lib\commands\find.js:75:11)
./features/step_definitions/more_tab_steps.rb:2:in `"I see the enter number screen"'
features/more_tab.feature:4:in `Given I see the enter number screen'
Failing Scenarios:
cucumber features/more_tab.feature:3 # Scenario: test
1 scenario (1 failed)
1 step (1 failed)
0m14.888s
感谢您的时间
解决方案
在面试中给我一个应用程序时,我遇到了同样的问题。但 2 天后,我能够找到解决与启动画面相关的问题的解决方案,并且无法使用脚本/appium 进入第二个屏幕,但手动它工作正常。问题与 INTENT 活动解决方案有关:我在脚本/功能中添加了一些额外的代码行到 appium,它运行良好。尝试将这些行用于具有闪屏问题的应用程序。
capabilities.setCapability("androidCoverage","com.my.Pkg/com.my.Pkg.instrumentation.MyInstrumentation");
capabilities.setCapability("androidCoverageEndIntent","com.example.pkg.END_EMMA");
capabilities.setCapability("intentAction","android.intent.action.MAIN");
capabilities.setCapability("intentCategory","android.intent.category.LAUNCHER");
capabilities.setCapability("intentFlags","0x10200000");
请让我知道它是否也对您有用?
推荐阅读
- java - Is there a way to use overridden function in base class? (In Java)
- bash - Dockerfile - escaping env variable passed to a 'RUN' command
- sql-server - Get the FirstEntryDate and its related SalaryPackage information
- jenkins - Jenkins 和 JIra docker 镜像连接
- android - How to add extra field to user with FirebaseAuth in android
- automation - image.expected 命令在哪里搜索图像?
- c++ - 减少 g++ RAM 使用量
- javascript - 无法对 Gatsby 网站的 Ant Design Table 中的列进行排序
- google-maps - How to use Google maps in Flutter with navigation
- c# - Is there a method in C# that converts just the characters with a special meaning in HTML and XML to entities?