Гибридное приложение на Appium: Отсутсвие WEB_VIEW

appium
Теги: #<Tag:0x00007fedb92cff70>

(Olga Kozlova) #1

Ребята, наверное, эта тема уж оскомину набила. И на официальном сайте аппиума много плача по этому поводу. Только я так и не поняла, что же все-таки можно сделать.

Когда-то давно пользовалась Appium на java - проблемы не было.
Сейчас возникла необходимость снова с ним связаться, уже на c# - на тебе, WEB_VIEW нет в доступных контекстах.

Гибридное приложение, в хром дебаггере определяется.
Пробовала запускать на реальных девайсах и на Genymotion эмуляторах с разными андроидами: и 4, и 5.
Нет WEB_VIEW - только NATIVE.

Кто виноват (appium? c#?) и - самое главное - что можно сделать?

Код на всякий случай:

namespace EventTesting.AppiumTests
{
    public class TestSuite
    {
        private AppiumDriver<IWebElement> _driver;

        private static Uri testServerAddress = new Uri("http://127.0.0.1:4723/wd/hub");
        private static TimeSpan INIT_TIMEOUT_SEC = TimeSpan.FromSeconds(180); 
        private static TimeSpan IMPLICIT_TIMEOUT_SEC = TimeSpan.FromSeconds(10);

        [SetUp]
        public void BeforeAll()
        {
            DesiredCapabilities capabilities = new DesiredCapabilities();
            TestCapabilities testCapabilities = new TestCapabilities();
        
            testCapabilities.App = "";
            testCapabilities.AutoWebView = false;
            testCapabilities.AutomationName = "";
            testCapabilities.BrowserName = String.Empty; 
            testCapabilities.DeviceName = "Needed if testing on IOS on a specific device. This will be the UDID";
            testCapabilities.FwkVersion = "1.0"; 
            testCapabilities.Platform = TestCapabilities.DevicePlatform.Android; 
            testCapabilities.PlatformVersion = String.Empty; 

            testCapabilities.AssignAppiumCapabilities(ref capabilities);
            _driver = new AndroidDriver<IWebElement>(testServerAddress, capabilities, INIT_TIMEOUT_SEC);
            _driver.Manage().Timeouts().ImplicitlyWait(IMPLICIT_TIMEOUT_SEC);
        }

        [TearDown]
        public void AfterAll()
        {
            _driver.Quit(); 
        }

        /// 
        /// Just a simple test to heck out Appium environment.
        /// 
        [Test]
        public void CheckTestEnvironment()
        {
            var contexts = _driver.Contexts;
        }
    }
}

Кто справился с похожей проблемой, расскажите?


#2

Попробуйте не с лёту считывать контексты, а подождать, пока в нативном контексте не появится элемент //android.webkit.WebView