删除特定的 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();
}
我正在审查 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();
}