首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当我在iOS Appium中从本机上下文切换到webview上下文时,appium驱动程序正在获取与当前页面url不同的url

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

Stack Overflow用户
提问于 2019-02-28 15:38:49
回答 1查看 287关注 0票数 1
  • 当我从本地上下文切换到webview上下文时,有时它获取的url不同于当前的url,但有时它获取正确的url
  • 我已经等待了,但同样的问题仍然到来
  • 当appium驱动程序获取不同的url测试将失败
  • In iOS app,因为webview是使用WKWEBVIEW

<代码>F29开发的。

注意: android应用程序中的相同网页视图工作正常

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

代码语言:javascript
复制
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;

应用程序版本: 1.9.1

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

appium logs

iOS logs appium

EN

回答 1

Stack Overflow用户

发布于 2019-03-01 00:23:28

@amit,嗨。

我在这里推荐几个选项:

1)您能分享一下初始化会话时使用的功能吗?你使用instrument your application吗?

代码语言:javascript
复制
dc.setCapability("instrumentApp",true)

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

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

@imurchie我已经确认1.8.2-beta确实安装了3.12.0版的appium-remote-debugger,我可以成功地切换到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

//使用以下命令切换回本地上下文

driver.context(NATIVE_APP);

我看过你的日志了。对我来说似乎有点奇怪的是--信息和调试级别的日志。我没有看到任何错误或异常。能否请您仔细检查一下您在adb logcat中是否有异常?

先谢谢你,尤金

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54920647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档