selenium 为什么AndroidDriver连接后无法在真实的设备上测试应用程序?

kokeuurv  于 2022-12-23  发布在  Android
关注(0)|答案(1)|浏览(90)

我尝试使用Appium在真正的Android设备上测试应用程序。AndroidDriver实际上可以连接到应用程序,当我运行代码时,设备上的应用程序将被调用。但当我尝试使用driver.findElement等函数时,没有任何React,等待了很长时间后,出现了Error communicating with the remote browser
下面是代码:

public class sampleTest {
    private AndroidDriver driver;

    @Before
    public void setUp() throws MalformedURLException {
        DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
        desiredCapabilities.setCapability("deviceName","Zachary");
        desiredCapabilities.setCapability("udid","88Y5T19B1793");
        desiredCapabilities.setCapability("platformName","Android");
        desiredCapabilities.setCapability("platformVersion","3.0.0");
        desiredCapabilities.setCapability("appPackage","com.test.test");
desiredCapabilities.setCapability("appActivity","host.exp.exponent.MainActivity");

        URL remoteUrl = new URL("http://127.0.0.1:4723/wd/hub");
        driver = new AndroidDriver(remoteUrl, desiredCapabilities);
//Here the app on device will be opened.
    }

    @Test
    public void SampleTest() {
//Nothing happens here.
        driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
        driver.findElement(By.id("SignIn")).click();

    }

    @After
    public void tearDown() {
        driver.quit();
    }
}

等待很长时间后的错误信息:

org.openqa.selenium.remote.UnreachableBrowserException: Error communicating with the remote browser. It may have died.
mmvthczy

mmvthczy1#

1.使用automationName功能并将其设置为UiAutomator2

  1. platformVersion功能的值看起来不对,版本3.0.0太老了,可能不被Appium支持,最新的Android OS版本我相信是12.0,请将其设置为正确的值,您可以登录到您的设备,进入“设置”并获取OS版本,还有,由于您使用udid功能来识别设备,因此实际上不必使用platformVersion功能,所以,如果你想的话可以把它去掉。
    如果问题仍然存在,请添加评论并提供新信息,我们将尝试解决问题。

相关问题