appium2+Java+idea
连接虚拟机,实现代码测试虚拟机
下面是我参考博客写的,但是运行都是无法连接虚拟机。appium2log也会报各种不同的错误
appium2+Java+idea
连接虚拟机,实现代码测试虚拟机
下面是我参考博客写的,但是运行都是无法连接虚拟机。appium2log也会报各种不同的错误
引自免费微信小程序:皆我百晓生
从你提供的代码片段来看,你正尝试通过Java与Appium 2.x版本配合IDEA集成开发环境,对Android虚拟机进行自动化测试。遇到的问题是无法成功连接到虚拟机,并且Appium日志显示了诸如NoSuchDriverError等错误。我将提供一些详细的检查点和调整建议来帮助你解决这个问题。
首先,确保Appium服务正在运行,并监听正确的端口(默认是4723)。可以通过命令行启动Appium服务,对于Appium 2.x,通常使用以下命令:
appium --relaxed-security
--relaxed-security
参数可以减少一些安全限制,这对于调试很有帮助。
确保Android虚拟机已经启动并且处于解锁状态。可以通过AVD Manager检查虚拟机的状态,并手动启动它。确保虚拟机的名称(如emulator-5554
)与代码中设置的一致。
根据你的描述,有几点需要注意:
Platform Version: 应该是具体的Android版本号,如10.0
而不是5.8.0.4
,这看起来像是一个错误的版本格式。
APP Package and Activity: 需要确保appPackage
和appActivity
的值正确无误,通常这些信息可以通过adb命令获取,例如:
adb shell dumpsys window | grep -E 'mCurrentFocus|mFocusedApp'
确保.activity.WelcomeGuideActivity
或.activity.MainActivity
是正确的启动Activity。
Unicode Keyboard and Reset Keyboard: 这些设置对于中文输入可能有用,但请确保你的应用确实需要这些设置。
基于上述建议,这里是一个修改后的代码示例:
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.options.UiAutomator2Options;
import org.openqa.selenium.By;
public class AppiumTest {
public static void main(String[] args) {
// 初始化Appium选项
UiAutomator2Options options = new UiAutomator2Options();
options.setPlatformName("Android");
options.setAutomationName("UiAutomator2");
options.setDeviceName("emulator-5554");
options.setAppPackage("com.MobileTicket");
// 确保appActivity是正确的启动Activity
options.setAppActivity(".ui.activity.WelcomeGuideActivity"); // 或者".activity.MainActivity"
options.setNoReset(true);
try {
// 启动Appium服务并初始化驱动
AndroidDriver<MobileElement> driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723"), options);
System.out.println("Appium Driver initialized");
// 示例操作
Thread.sleep(3000); // 等待应用加载
driver.findElement(By.xpath("//*[@content-desc='铁路12306']")).click();
Thread.sleep(1000);
// 结束测试后记得关闭driver
driver.quit();
} catch (Exception e) {
e.printStackTrace();
}
}
}
遵循以上步骤,你应该能解决连接虚拟机的问题。如果仍然遇到问题,请仔细检查Appium的错误日志,它们通常会指向问题的具体原因。