Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java的Appium(Android)中的ADB超时错误_Android_Appium - Fatal编程技术网

使用Java的Appium(Android)中的ADB超时错误

使用Java的Appium(Android)中的ADB超时错误,android,appium,Android,Appium,这是我的密码。它应该打开浏览器导航到谷歌,并在搜索框中键入“Appium”。 它打开chrome浏览器并导航到谷歌浏览器,但在等待几秒钟后,它会直接显示错误 public class androidDevice { AppiumDriver driver; @BeforeTest public void Appium_device() throws MalformedURLException, Exception { { DesiredCapabilities cap

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

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
}

          }
}

预期结果是:它应该打开浏览器导航到谷歌,并在搜索框中键入“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

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

driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
根据您在此测试中的经验,设置为60、120或合理的时间量

请注意,隐式等待是针对WebDriver的每个命令,而不是整个测试,因此它实际上不应该太大

另一种可能是,您要查找的项目在页面布局中找不到。也许现在看不见,也许你所处的环境与你所期望的不同

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


您可以在和了解有关隐式和显式等待的更多信息。

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

driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
根据您在此测试中的经验,设置为60、120或合理的时间量

请注意,隐式等待是针对WebDriver的每个命令,而不是整个测试,因此它实际上不应该太大

另一种可能是,您要查找的项目在页面布局中找不到。也许现在看不见,也许你所处的环境与你所期望的不同

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


您可以在和处了解有关隐式和显式等待的更多信息。

我尝试过,但不起作用。我还尝试删除了find elements代码,如果直接使用driver.close进行尝试,它仍然会显示与以前相同的错误。我尝试了,但不起作用。我还试图删除find elements代码,如果直接使用driver.close尝试,它仍然显示与以前相同的错误。