当我在iOS appium中从本机切换到webview上下文时,Appium驱动程序正在获取与当前页面URL不同的URL

问题描述 投票:1回答:1
  • 当我从本机上下文切换到webview上下文时,有时会获取与当前url不同的url,但有时会获取正确的url
  • 我已经等待,但仍然会出现同样的问题
  • 当appium驱动程序获取不同的url测试时将失败
  • 在iOS应用程序中,webview是使用WKWEBVIEW开发的

注意:Android应用中的相同webview正常工作

我无法确定问题,是Appium驱动程序还是WKWEBVIEW的问题,如果有人知道这个问题出现的原因,请帮我解决问题

DesiredCapabilities capabilities = new DesiredCapabilities();       
    capabilities.setCapability("platformVersion", "11.2");
    capabilities.setCapability("platformName", "iOS");
    capabilities.setCapability("deviceName", "iPhone 7");
    capabilities.setCapability("app", ""); // app path
    capabilities.setCapability("automationName", "XCUITest");
    capabilities.setCapability("instrumentApp", true);//added now
    capabilities.setCapability(MobileCapabilityType.UDID, "75C77542-36B8-4E6F-86C7-904237C8CB82");
    capabilities.setCapability(IOSMobileCapabilityType.BUNDLE_ID, ""); //a.b.com
    capabilities.setCapability("showXcodeLog", true);
    capabilities.setCapability("cssSelectorsEnabled", true);
    capabilities.setCapability("nativeEvents", true);
    capabilities.setCapability("nativeWebTap", true);



    return capabilities;

Appium版本:1.9.1

当appium驱动程序切换到不同的URL时,Appium会记录

appium logs

iOS logs appium

java appium wkwebview appium-ios
1个回答
1
投票

@amit,嗨。

我在这里建议几个选项:

1)您能否分享用于初始化会话的功能?你instrument your application

dc.setCapability("instrumentApp",true)

2)here也出现了类似的问题。请检查您当前使用的版本。

有一个新的测试版。请尝试(npm uninstall -g appium && npm install -g appium @ beta)。

@imurchie我已经确认1.8.2-beta确实安装了appium-remote-debugger的v3.12.0,我可以成功切换到webviews!我将对我的应用程序运行完整回归,看看我是否遇到任何问题。

希望这有帮助,如果问题仍然存在,请告诉我。

3)2019/03/07更新@amit,需要了解在代码实现中如何从原生切换到webview。在我过去的项目中,我使用了以下方法(基于AppiumDriver):

Set<String> contextNamez = driver.getContextHandles(); for (String singleContext : contextNamez) {
log.info(singleContext); //smth like NATIVE_APP, WEBVIEW_com.example.android etc.. } String newContext = contextNamez.toArray()[1].toString(); driver.context(newContext);// sets context to WEBVIEW_com.example.android

//使用切换回Native上下文

driver.context(NATIVE_APP);

我对你的日志做了评论。对我来说似乎有点奇怪 - 是INFO和DEBUG级别的日志。我没有看到任何错误或例外。请你仔细检查一下你是否在adb logcat中有任何例外?

特此感谢,尤金

© www.soinside.com 2019 - 2024. All rights reserved.