删除特定的adb shell命令以支持使用Appium

时间:2016-08-30 12:48:49

标签: android shell adb appium

我正在审核Android应用程序的一些现有的基于Appium的自动化,并且在一些地方,代码中有对adb的直接shell调用。我怀疑作者这样做是因为他或她找不到与Appium执行等效操作的好方法。这是adb命令:

adb shell am start -d https://<various_url_details_here>

当自动化执行时,它具有触发&#39;打开&#39;对话框,以便用户可以点击各种选项,例如浏览器或应用程序。有没有办法在不直接执行shell命令的情况下使用Appium执行此特定命令?如果存在这种方式,这是一个好主意吗?

1 个答案:

答案 0 :(得分:0)

使用AndroidDriver.get()功能:

private WebDriver driver;

@Before
public void setUp() throws Exception {
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability(..., ...);
    //--------------------------------------------------------------//
    driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}

@Test
public void testcase_001() throws Exception{
    driver.get("https://<various_url_details_here>");  // Here is what you want
    WebDriverWait wait = new WebDriverWait(driver, 30);
    wait.until(ExpectedConditions.presenceOfElementLocated(By.id(...")));
    Thread.sleep(5000);
 }

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