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

Removing a specific adb shell command in favor of using Appium

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

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

当自动化执行时,它会触发 'Open with' 对话框,以便用户可以点击各种选项,例如浏览器或应用程序。有没有办法不用直接执行 shell 命令就可以用 Appium 执行这个特定的命令?如果存在这样的方法,是不是一个好主意?

使用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();
}