我正在审核Android应用程序的一些现有的基于Appium的自动化,并且在一些地方,代码中有对adb的直接shell调用。我怀疑作者这样做是因为他或她找不到与Appium执行等效操作的好方法。这是adb命令:
adb shell am start -d https://<various_url_details_here>
当自动化执行时,它具有触发&#39;打开&#39;对话框,以便用户可以点击各种选项,例如浏览器或应用程序。有没有办法在不直接执行shell命令的情况下使用Appium执行此特定命令?如果存在这种方式,这是一个好主意吗?
答案 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();
}