Appium:在hybid应用程序中选择多个WebView

时间:2015-10-05 17:44:32

标签: android webview automated-tests appium

在Appium中,如何在使用多个WebView的Android应用程序中选择第一个以外的WebView?

我正在使用Appium尝试在Android上为我们的混合应用程序创建自动化测试工具,我遇到了一个问题,即应用程序中包含三个WebView,我只能选择其中一个。

以下是获取上下文列表的代码:

Set<String> contextNames = driver.getContextHandles();
System.out.println("Available contexts:");
for (String contextName : contextNames) {
    System.out.println("\t"  + contextName);
}

这将在可用的上下文中列出“NATIVE_APP”和“WEBVIEW_com.mycompany.myapp”。 (其他情况似乎与Android尚未关闭的最近使用的应用有关。)

当我尝试使用以下代码获取WebView的URL时:

driver.context("WEBVIEW_com.mycompany.myapp");
System.out.println("Current URL is: " + driver.getCurrentUrl());

我得到的是“当前网址为:https://googleads.g.doubleclick.net/mads/static/mad/sdk/native/sdk-core-v40.html

使用chrome://来自Google Chrome浏览器检查显示以下WebView嵌入在应用程序中:

https://googleads.g.doubleclick.net/mads/static/mad/sdk/native/sdk-core-v40.html
about:blank
file:///android_asset/www/index.html#/app/home

如何让Appium使用URL文件切换到WebView:///android_asset/www/index.html#/app/home而不是列表中的第一个?

1 个答案:

答案 0 :(得分:0)

尝试

ReadOnlyCollection<string> windowHandles = InitialiseAppium.driver.WindowHandles;
InitialiseAppium.driver.SwitchTo().Window(windowHandles[1])