【问题标题】:ADB timed Out Error in Appium(Android) using Java使用Java的Appium(Android)中的ADB超时错误
【发布时间】:2021-04-06 15:31:50
【问题描述】:

这是我的代码。它应该打开浏览器导航到谷歌,并在搜索框中输入“Appium”。 它打开 chrome 浏览器并导航到 google,但之后它会在等待几秒钟后直接显示错误。

public class androidDevice {

AppiumDriver driver;
@BeforeTest
public void Appium_device() throws MalformedURLException, Exception {
    {

        DesiredCapabilities capabilities = new DesiredCapabilities();


          capabilities.setCapability("deviceName", "43f0a801");

          capabilities.setCapability("chromedriverExecutable", "D:\\Soumya\\Eclipse\\chromedriver.exe");


            capabilities.setCapability(CapabilityType.VERSION, "8.1.0");

          capabilities.setCapability("platformName", "Android");

         capabilities.setCapability("appPackage", "com.android.chrome");
         capabilities.setCapability("appActivity", "com.google.android.apps.chrome.Main");



          driver = new AndroidDriver(new URL("http://0.0.0.0:4723/wd/hub"),capabilities);

           driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

    }
    }
    @Test    
    public void launch() throws Exception {
              try {
    //driver.get("https://us.justdial.com");
                  driver.get("https://www.google.com/");
                driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
                driver.findElement(By.id("com.android.chrome:id/search_box_text")).sendKeys("Appium");
                  driver.quit();

    System.out.println("site hit");
}
catch (Exception e) { 
    System.out.println("site not accessed");
    throw (e);
    // TODO: handle exception
}

          }

}

预期的结果是:它应该打开浏览器导航到 google 并在搜索框中输入“Appium”。

实际结果: Appium结果

FAILED: launch org.openqa.selenium.WebDriverException: An unknown
 server-side error occurred while processing the command. Original
 error: Error attempting to start URI. Original error: Error: Error
 executing adbExec. Original error: 'Command
'C\:\\Users\\soumya.katti\\android-sdks\\platform-tools\\adb.exe -P
 5037 -s 43f0a801 shell am start -W -a android.intent.action.VIEW -d
 https\://us.justdial.com com.android.chrome' timed out after 20000ms';
 Stderr: ''; Code: 'null' (WARNING: The server did not provide any
 stacktrace information)

Eclipse 结果:

org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: Error attempting to start URI. Original error: Error: Error executing adbExec. Original error: 'Command 'C\:\\Users\\soumya.katti\\android-sdks\\platform-tools\\adb.exe -P 5037 -s 43f0a801 shell am start -W -a android.intent.action.VIEW -d https\://us.justdial.com com.android.chrome' timed out after 20000ms'; Stderr: ''; Code: 'null' (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 40.05 seconds

【问题讨论】:

    标签: android appium


    【解决方案1】:

    您有 30 秒的隐式等待。这意味着 WebDriver 有 30 秒的时间来查找 DOM 中定义的某个元素。如果在这样的时间内没有,则测试失败,但您显示的异常除外。如果进程在尝试执行任务时超时,那么您很可能可以通过增加隐式等待来解决此问题:

    driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
    

    根据您的测试经验设置为 60、120 或合理的时间。

    请注意,隐式等待是针对 WebDriver 的每个命令,而不是针对整个测试,所以它不应该真的那么大。

    另一种可能性是您要查找的项目在页面布局中并未真正找到。也许它目前不可见,也许您处于与预期不同的屏幕中。

    仔细检查测试用例的执行,看看会发生什么。尝试添加一些计时器以查看隐式等待何时开始。

    您可以在WebDriver: Advanced UsageImplicit Wait - Appium 了解有关隐式和显式等待的更多信息。

    【讨论】:

    • 我试过了,但它不起作用。我还尝试删除查找元素代码,如果直接尝试使用 driver.close 它仍然显示与以前相同的错误。
    猜你喜欢
    • 2017-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-15
    • 1970-01-01
    相关资源
    最近更新 更多