我是appium自动化测试的新手,我尝试使用appium和java运行一组代码,但是尽管我已经安装了最新版本的appium和nodejs并希望运行,但该错误始终返回我下面的代码。 我尝试在Windows 10上使用appium 1.13.0运行以下代码,并且已经安装了所有必备组件,例如node js和appium桌面客户端
package andriod;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobileCapabilityType;
public class StartApplication {
private static AndroidDriver driver;
public static void main(String[] args) throws MalformedURLException, InterruptedException {
File classpathRoot = new File(System.getProperty("user.dir"));
File appDir = new File(classpathRoot, "/Apps/");
File app = new File(appDir, "in.amazon.mShop.android.shopping_2019-09-11.apk");
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("autoGrantPermissions", true);
caps.setCapability("noReset", true);
caps.setCapability(CapabilityType.BROWSER_NAME, "");
caps.setCapability(MobileCapabilityType.DEVICE_NAME,"Redmi");
caps.setCapability(CapabilityType.PLATFORM_NAME, "ANDROID");
caps.setCapability(CapabilityType.VERSION, "9.0");
caps.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT,"60");
caps.setCapability("app", app.getAbsolutePath());
caps.setCapability("appPackage", "in.amazon.mShop.android.shopping");
caps.setCapability("appActivity", "com.amazon.mShop.home.HomeActivity");
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), caps);
driver.manage().timeouts().implicitlyWait(80, TimeUnit.SECONDS);
Thread.sleep(10000);
driver.quit();
}
}
我希望代码可以成功运行,但错误消息如下所示
原始错误:'命令'C:\ Users \ myusername \ AppData \ Local \ Android \ sdk \ platform-tools \ adb.exe -P 5037 -s dd8fa21 shell pm install -g / data / local / tmp / appium_cache /728413456b86856a2003edeb524d6bd577ca6418.apk'以代码1'退出;斯特德:'';代码:“ 1”
答案 0 :(得分:0)
1-首先检查鸦片是否在运行。
2-如果是,您应该知道有时Node.js无法与 127.0.0.1:4723 对话,因此请改用 0.0.0.0:4723 。记住要同时在代码(DesiredCapabilities)和appium设置中进行更改。
3-具备“ udid”参数才能获得所需功能
4-您应保持如下代码结构。还需要使用这三种符号:(@BeforeMethod,@Test,@AfterMethod)
类似这样的东西:
import <...>
.
.
public class sample { //this is the main class. You shouldn't define it as static or void so you must not have main methode
//define variables you will be use during the test
public AndroidDriver<MobileElement> driver;
public WebDriverWait wait;
public Dimension size;
public String destDir;
public DateFormat dateFormat;
.
.
.
//define the methodes you will be use during the test
public (swipe) {
... };
public (takeScreenShot) {
...};
@BeforeMethod
public void setup () throws MalformedURLException {
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability("deviceName", "Galaxy S7 API 26");
caps.setCapability("udid", "ce0217124184c72505"); //DeviceId from "adb devices" command
caps.setCapability("platformName", "Android");
caps.setCapability("platformVersion", "8.0");
caps.setCapability("skipUnlock","true");
caps.setCapability("appPackage", "app_packageName"); // Your app packageName
caps.setCapability("appActivity","app_first_activity"); // The first activity of app. You can use "Apk Info2" application to find this
caps.setCapability("noReset","false");
driver = new AndroidDriver<MobileElement>(new URL("http://0.0.0.0:4723/wd/hub"),caps);
wait = new WebDriverWait(driver, 10);
}
@Test
public void test () throws Exception {
//Test commands
}
@AfterMethod
public void teardown(){
driver.quit();
}
我希望这会有所帮助。
答案 1 :(得分:0)
问题出在命令本身,可能是struct ItemsView: View {
var body: some View {
Text("ItemsView")
}
}
尚未配置。
如果您尝试自己运行命令:appium@beta
您将看到输出显示:adb -P 5037 -s dd8fa21 shell pm install -g /data/local/tmp/appium_cache/728413456b86856a2003edeb524d6bd577ca6418.apk
appium espresso服务器生成的命令中缺少测试标志Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI]
。
我通过手动安装运行的apk解决了该问题:
-t