我想使用Appium来测试需要通过URL方案从浏览器启动的应用。
进行什么方式?我假设我不应该在app路径中使用'app'功能,因为我不希望在测试开始后立即启动应用程序。
代码示例将不胜感激。
答案 0 :(得分:0)
检查this
配置应用以侦听子域名:
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="android.intent.category.BROWSABLE"></category>
<data android:scheme="appname"></data>
</intent-filter>
添加指向网站的链接
答案 1 :(得分:0)
如果您测试移动网络应用,那么您无需设置应用功能。但您应该将浏览器名称功能设置为
// java
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "4.4");
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "Chrome");
然后正常的webdriver脚本应该工作。还尝试切换到webview上下文,如下所示,然后webdriver命令将像任何桌面浏览器一样工作
foreach(String context in driver.contexts())
{
if(context.contains("WebView"){
driver.context = context;
}
}
答案 2 :(得分:0)
这很难做到。我会通过adb测试意图。文档here有一个示例,说明调用应该是什么样的,
<URI> <COMPONENT> <PACKAGE>
You can directly specify a URI, package name, and component name when not qualified by one of the above options. When an argument is unqualified, the tool assumes the argument is a URI if it contains a ":" (colon); it assumes the argument is a component name if it contains a "/" (forward-slash); otherwise it assumes the argument is a package name.
我们的电话看起来像这样:
adb shell am start -W -a android.intent.action.VIEW -d "appName://someRoute/someID" com.appName
然后我们从代码中将它称为shell命令。在我们的案例中使用ruby的系统&#39;命令。
现在正试图弄清楚如何通过Appium意图打开应用程序到深层链接。如果你想到这一点让我知道......(悲伤)