我正在Android Studio中使用Appium WebDriver为Android Emulator运行一个简单的计算器测试。我已经手动启动了Appium服务器和Android Emulator,然后使用TestNG.xml运行测试。
这是我的示例WebDriver代码-
package com.example.user.mysampleapp2;
/**
* Created by CParmar on 14-09-2017.
*/
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.testng.annotations.*;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import io.appium.java_client.remote.MobileCapabilityType;
import io.appium.java_client.remote.MobilePlatform;
public class SampleTests {
public WebDriver driver;
@BeforeClass
public void setUp() throws MalformedURLException {
// Created object of DesiredCapabilities class.
DesiredCapabilities capabilities = new DesiredCapabilities();
// Set android deviceName desired capability. Set your device name.
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Nexus_6_API_25");
// Set BROWSER_NAME desired capability. It's Android in our case here.
capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "Android");
// Set android VERSION desired capability. Set your mobile device's OS version.
capabilities.setCapability(MobileCapabilityType.VERSION, "7.1.1");
// Set android platformName desired capability. It's Android in our case here.
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.ANDROID);
// Set android appPackage desired capability. It is
// com.android.calculator2 for calculator application.
// Set your application's appPackage if you are using any other app.
capabilities.setCapability("appPackage", "com.android.calculator2");
// Set android appActivity desired capability. It is
// com.android.calculator2.Calculator for calculator application.
// Set your application's appPackage if you are using any other app.
capabilities.setCapability("appActivity", "com.android.calculator2.Calculator");
// Created object of RemoteWebDriver will all set capabilities.
// Set appium server address and port number in URL string.
// It will launch calculator app in android device.
driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
}
@Test
public void testFirstCalculator() {
// Click on DELETE/CLR button to clear result text box before running test.
driver.findElements(By.xpath("//android.widget.Button")).get(0).click();
// Click on number 2 button.
driver.findElement(By.name("7")).click();
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
}
@AfterClass
public void End() {
driver.quit();
}
}
当我在Android Studio上运行这个程序时,我得到了下面的Appium错误。
使用以下命令启动Appium服务器:C:\Program Files(x86)\Appium\node.exe lib\server\main.js--地址127.0.0.1--端口4723--平台名称Android--平台版本23--自动化名称Appium--日志无颜色信息:欢迎使用Appium v1.4.16(版本ae6877eff263066b26328d457bd285c0cc62430d)信息:Appium REST http接口侦听器在127.0.0.1:4723启动信息:[调试]非默认服务器参数:{“地址”:“127.0.0.1”,“LognoColor”:true,“platformName”:“Android”,“platformVersion”:“23”,“automationName”:“Appium”}信息:控制台日志级别:调试信息:--
警告:没有应用程序功能,无法使用快速重置解析包/活动信息:[调试]?true info:[debug]为会话信息准备设备:[debug]不检查应用程序是否存在,因为我们假设它已经在设备信息上:检索设备信息:[debug]尝试查找已连接的android设备信息:[debug]正在连接设备。。。信息:[debug]正在执行cmd:“C:\Users\CParmar\AppData\Local\Android\sdk\platform tools\adb.exe”设备信息:[debug]1个设备连接信息:找到设备仿真器-5554信息:[debug]正在将设备id设置为仿真器-5554信息:[debug]正在等待设备准备就绪并响应shell命令(超时=5)信息:[debug]正在执行cmd:“C:\Users\CParmar\AppData\Local\Android\sdk\platform tools\adb.exe”-s emulator-5554等待设备信息:[调试]执行cmd:“C:\Users\CParmar\AppData\Local\Android\sdk\platform tools\adb.exe”-s emulator-5554 shell“echo'ready'”信息:[调试]启动logcat捕获错误:logcat捕获失败:spawan”C:\Users\CParmar\AppData\Local\Android\sdk\platform tools\adb.exe“enoint info:[debug]停止logcat捕获
我已经浏览了论坛上所有可用的帖子,还使用ANDROID Studio运行配置(ANDROID_HOME)中的SDK路径设置了ANDROID_HOME变量。我仍然收到这个错误。
有什么帮助吗?
谢谢,钱德瑞斯·帕玛
从错误日志中可以清楚地看到,没有设置ANDROID_HOME环境变量。
例如:您已经在“C:\Users\YourUserName\AndroidDK”中安装了Android SDK,那么Android_HOME path的值将是相同的路径。
只需添加名为ANDROID_HOME、值为路径的新环境变量。
而且你的appium版本很旧(1.4.16)。我建议你升级到1.6.3,这是目前非常稳定的appium版本
您可以按照这些答案来修复正在设置的环境变量。同时,我建议安装appium doctor,并在执行appium测试之前检查环境设置中缺少的内容。
就你而言:
npm install appium-doctor -g
appium-doctor --android
您期望得到的回应是:
### Diagnostic starting ###
✔ The Node.js binary was found at: /usr/local/bin/node
✔ Node version is 7.9.0
✔ ANDROID_HOME is set to: /Users/<user>/Library/Android/sdk
✔ JAVA_HOME is set to: /Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
✔ adb exists at: /Users/<user>/Library/Android/sdk/platform-tools/adb
✔ android exists at: /Users/<user>/Library/Android/sdk/tools/android
✔ emulator exists at: /Users/<user>/Library/Android/sdk/tools/emulator
✔ Bin directory of $JAVA_HOME is set
### Diagnostic completed, no fix needed. ###
修复所有的x
标记祝你好运
在运行mvn spring-boot:run命令时,我无法找出什么是错误的。mvn clean install使构建成功,但对于mvn spring-boot:run,我得到一个构建失败。这是运行mvn spring-boot时控制台中的错误日志:run-x。 这是我的pom.xml。我还从eclipse ide中的活动maven配置文件中删除了pom.xml,原因是它作为本链接中的解决方案之一给
我正试图通过XCode构建我的Unity游戏,但我在使用Firebase时遇到了很多麻烦。首先,我得到了很多关于缺少引用的错误,因为我的Podfile是由编辑器错误地生成的。它正在搜索插件的错误版本,正如.xml文件中指定的那样。我通过删除Podfile中的版本并启动'pod repo update'和'pod install'来解决这个问题。之后,当我再次尝试构建时,我得到了这样的结果: 体系结
我已经使用向导生成了一个带有导航抽屉的应用程序。 当我选择“运行”“应用”或“调试”“应用”时,我会得到以下错误: 生成签名APK...选项工作,它创建的签名应用程序,可以安装在电话和工作。也可以使或重建项目在调试或发布中工作,没有错误。 null
我最近升级了我的项目。 我的项目生成失败并出现错误: 任务:检查样式主失败 . gradle\daemon\4.10.2\etc\check style\checkstyle-suppressions.xml(系统找不到指定路径) 这是我的gradle构建文件:
应用程序构建错误:'app:checkDebug重复类' 我知道通过删除一个类可以解决此错误,但我不知道如何删除它,或者有任何其他方法可以解决此问题。 谢啦 失败:生成失败,出现异常。问题:任务“:app:checkDebugDuplicateClasss”的执行失败。执行com.android.build.gradle.internal.tasks时出错。检查DuplicatesRunnable
我正在尝试构建一个颤振应用程序,该应用程序已经在其他系统中开发,但我得到的梯度误差如下所示: 正在启动lib/main。sdk gphone64 arm64上的dart处于调试模式。。。正在运行Gradle任务“assembleDebug”。。。警告:映射新的nshttp://schemas.android.com/repository/android/common/02给老奶奶http://sc