- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用 appium java 客户端进行我的 Android UI 测试。但是,我无法让它运行。这是我的 build.gradle 和我的错误消息。
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
defaultConfig {
applicationId "com.example.wpjtest2"
minSdkVersion 26
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.uiautomator:uiautomator-v18:2.1.3'
androidTestImplementation 'io.appium:java-client:5.0.4'
}
错误:
Information:Gradle tasks [:app:assembleDebug, :app:assembleDebugAndroidTest]
Error:java.lang.IllegalAccessException: no such method: org.springframework.core.io.buffer.DataBufferUtils.lambda$read$0(ReadableByteChannel)ReadableByteChannel/invokeStatic
Error:java.lang.NoClassDefFoundError: org/reactivestreams/Publisher
Error:java.lang.ClassNotFoundException: Class org.reactivestreams.Publisher not found
Error:java.nio.file.DirectoryNotEmptyException: C:\Users\zil\AppData\Local\Temp\lambdas5516872364251960030\org\springframework\core\io
Error:java.lang.IllegalAccessException: no such method: org.springframework.beans.factory.config.YamlMapFactoryBean.lambda$createMap$0(Map,Properties,Map)void/invokeSpecial
Error:java.lang.NoClassDefFoundError: org/yaml/snakeyaml/reader/UnicodeReader
Error:java.lang.ClassNotFoundException: Class org.yaml.snakeyaml.reader.UnicodeReader not found
Error:Execution failed for task ':app:transformClassesWithDesugarForDebugAndroidTest'.
> com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: Error while executing java process with main class com.google.devtools.build.android.desugar.Desugar with arguments {@C:\Users\xxx\project\WPJTest2\app\build\intermediates\tmp\desugar_args221997254795871866}
Information:BUILD FAILED in 15s
Error:java.lang.ClassNotFoundException: Class javax.validation.Validator not found
Information:9 errors
Information:0 warnings
Information:See complete output in console
任何人都可以检查我是否有正确和足够的依赖关系?有很多关于添加 Appium 的教程,但没有一个对我有用。
另一方面,如果我可以使用 Java 7 与 Appium 集成,我应该怎么做呢?
最佳答案
虽然Appium文档齐全且用途广泛,Android Studio 的工作组合花了我一天的时间。在我的例子中,它是 Espresso 的替代品,因为它 doesn't currently support multi-feature testing for Instant Apps .此外,Appium 还为测试应用程序集成提供了更广泛的可能性,例如 Firebase 消息传递、使用其他应用程序等。
添加库到您的项目app
或my_feature
gradle 文件。 Appium 和 Selenium 版本应该注意避免“没有这样的方法错误”- see an answer :
dependencies {
androidTestImplementation 'junit:junit:4.12'
androidTestImplementation 'io.appium:java-client:5.0.1'
androidTestImplementation 'org.seleniumhq.selenium:selenium-java:3.4.0'
}
在您的 Android 项目 .../src/androidTest/java/
文件夹中创建一个 JUnit 功能测试类。您也可以使用简单的 JUnit 测试包装器。出于测试需要,您可以在 Android 项目中使用 main
方法创建一个单独的 Java 项目或 Java 类,但将 Appium 测试集成到 Android Studio 测试功能中会更方便。还要检查您是否没有导入其他测试库,也没有在您的代码中混合使用它(例如,@Test 可用于 TestNG 和 JUnit)。在您的方法中使用 Appium Inspector 自动生成的代码,例如:
package com.example.my_project;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.net.MalformedURLException;
import java.net.URL;
import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
public class SampleTest {
private AndroidDriver<MobileElement> driver;
@Test
public void testPlan()
throws MalformedURLException {
setUp();
testWorkUnit_WithCertainState_ShouldDoSomething();
abotherTestWorkUnit_WithCertainState_ShouldDoSomething();
tearDown();
}
public void setUp()
throws MalformedURLException {
DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
URL remoteUrl = new URL("http://localhost:4723/wd/hub");
desiredCapabilities.setCapability(
"platformName",
"Android");
desiredCapabilities.setCapability(
"deviceName",
"Android Emulator");
desiredCapabilities.setCapability(
"appPackage",
"com.example.my_project");
desiredCapabilities.setCapability(
"appActivity",
"com.example.my_project.MyActivity");
driver =
new AndroidDriver<>(
remoteUrl,
desiredCapabilities);
}
public void testWorkUnit_WithCertainState_ShouldDoSomething() {
MobileElement el1 =
driver.findElementById(
"com.example.my_project:id/urlField");
el1.sendKeys("example.com");
}
public void tearDown() {
driver.quit();
}
}
至于代码中的注释:@Before
和@After
用于类中每个测试用例的前后(@BeforeClass
和@AfterClass
需要静态且不方便)。因此它每次都会重新启动应用程序,并且不方便进行链接测试。所以最好有一个方法用@Test
注释,它会调用其他未注释的方法进行设置,按要求的顺序做测试用例并完成。
关于java - 无法使用 Appium + Android Studio 3.0 + Java 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48728829/
我在识别“Appium”中突出显示的元素时收到以下消息。 Appium: 1.7.1设备:iPhone X(12.0 和模拟器)Java 客户端: 1.6.1Xcode:V 10 交互不适用于此元素。
我在 IOS 和 Android 的移动自动化中使用了 Appium。我想知道提供 Calabash 的优势,以及这两种工具生成的脚本是否有共同点? 我已经点击了这个链接:Appium VS Cala
由于 swipe() 已弃用,我无法从左向右滑动屏幕。我的应用程序中有 4 个横幅,我想滑动以查看所有横幅。 最佳答案 这适用于所有方向: 枚举: public enum DIRECTION {
在进行 Appium 测试时,我单击退出应用程序的按钮,如何检查应用程序是否正在运行或我们返回主屏幕。是否有任何方法可以仅通过包名称查找元素列表。 最佳答案 import io.appium.java
我试过命令: npm -install -g appium@1.6 但是当我重新启动 Appium 时,它仍然是 1.5.3 版本。 最佳答案 有两种不同类型的 appium 工具可用 Appium
Mac书空气 Java 1.8 Appium桌面版1.8.1 大家好, 我正在构建一个 TestNG 框架,并且我想以编程方式启动我的 appium 桌面服务器以进行测试。所以我决定做的是创建一个 j
打开终端 (cmd) 并运行 appium-doctor 后,我收到以下警告: WARN AppiumDoctor ✖ opencv4nodejs cannot be found. WARN Appi
这里是移动自动化的新手。我正在尝试使用 Touch Action 执行以下代码来执行滑动操作以导航到第 2 页,但滑动不起作用。 AndroidDriver driver=new AndroidDri
我有一个 iOS 应用程序,它在单个页面上有很多输入字段。我想自动执行这些输入,我知道如何滚动到这些元素和所有内容,但我对部分显示的元素有疑问。 有两种情况下部分显示的元素会导致问题: 第一种情况是当
我正在使用 eclipse 学习 appium,但在启动我的模拟器时卡住了。我尝试了不同的方法,例如在文件夹结构中四处移动文件,但我一直收到 文件不存在或不可访问 我尝试搜索答案,但没有任何帮助。 p
我的应用程序需要多个应用程序权限。我需要通过允许或拒绝不同的权限来检查我的应用程序的行为。如何从 appium 启用/禁用应用程序权限以创建多个场景? 例如,假设我的应用程序需要权限:permissi
我正在使用 Appium 版本 V1.15.0 并且已经使用默认主机:0.0.0.0 和端口:4723 成功启动服务器 但是现在当我尝试启动服务器时,它显示了这个错误“Error Starting A
我在一家提供 wifi 的公司工作。我有一些接入点设置,我想编写一些模拟连接到这些接入点的自动化测试。 所以我的测试将是这样的: 发射装置 转到设备上的 wifi 设置 选择要连接的wifi 验证设备
我在用 : Xcode 10.1 Os Version : 12.1 iPhone 6 我确实按照所有必需的步骤来设置构建和所有内容,但是在尝试使用 xcode build 构建项目时仍然出现错误。
我正在使用 appium 工具测试我的应用程序。在测试过程中,android应用程序在启动器事件附近崩溃,仅在8以下版本的某些设备上显示以下错误。如何解决? An unknown server-sid
我试图运行测试ipa。但是 appium 在循环中重新启动应用程序并产生此错误。 [INST STDERR] Instruments Trace Error : Target failed to ru
我想知道是否有人知道在运行 Appium 测试时使用什么 Java/Groovy 库/工具来嗅探、记录和处理 native 应用程序的 HTTP 流量?有没有人在特定情况下使用 Browser Mob
我在测试中担任 SD。我是 Appium 自动化工具的新手,这个工具对我来说设置环境非常棘手。 我引用了以下链接:http://unmesh.me/category/appium/ 这个链接帮助我安装
正在测试 Android 和 iOS 应用程序。这是我的应用程序的配置屏幕,出现一个 OTP 用例,停止对应用程序的进一步测试。用例是。 当用户在应用程序的起始页面输入手机号码时,指令为 。点击发送按
我已经安装了 appium doctor 并且在 mac 上没有错误地安装了它。但是,当我使用命令“appium-doctor -h”进行检查时。它给出了以下异常。你能告诉我这里出了什么问题吗: ap
我是一名优秀的程序员,十分优秀!