当前位置: 首页 > wzjs >正文

剧院网站建设网站开发行业代码

剧院网站建设,网站开发行业代码,南宁做网站哪家好,网站建设参考的文献引言 在移动应用自动化测试中,​​混合应用(Hybrid App)​​ 和多窗口场景(如分屏、弹窗、多 WebView)的处理一直是技术难点。Appium 的 enableMultiWindows 参数为这类场景提供了关键支持,但在实际使用中常…

引言

在移动应用自动化测试中,​​混合应用(Hybrid App)​​ 和多窗口场景(如分屏、弹窗、多
WebView)的处理一直是技术难点。Appium 的 enableMultiWindows
参数为这类场景提供了关键支持,但在实际使用中常因配置不当引发问题。

遇到的问题

起初在测试一个期货交易类APP时,订单发送后会有成交回报,在app的上方显示。这个提示弹出框无法被appium获取,获取page souce XML结构时无法找到这个元素。其实这就是因为在Appium初始化driver时,没有把这个参数设置成True,导致,这部分的元素XML结构不可见,所以无法定位,进行成交回报验证和下一步操作。

解决方案

  1. 可以在Appium初始化时设置 把参数"enableMultiWindows": True 设置成True
caps = {"platformName": "Android","deviceName": "emulator-5554","app": "/path/to/app.apk","automationName": "UiAutomator2",  # 必须使用 UiAutomator2"enableMultiWindows": True         # 启用多窗口支持
}
  1. 但是我们使用的时测试平台,没有底层的初始话driver的操作,就不能在初始的时候去操作这个参数,所以就研究怎么在运行时去修改Appium的参数。其实Appium的代码对外暴露的有修改设置的接口driver.setSetting(Setting.WAIT_FOR_IDLE_TIMEOUT,60);,但是这个Setting的类型时一个Enum类型,在它的源码中能看到有以下几种
    IGNORE_UNIMPORTANT_VIEWS("ignoreUnimportantViews"),WAIT_FOR_IDLE_TIMEOUT("waitForIdleTimeout"),WAIT_FOR_SELECTOR_TIMEOUT("waitForSelectorTimeout"),WAIT_SCROLL_ACKNOWLEDGMENT_TIMEOUT("scrollAcknowledgmentTimeout"),WAIT_ACTION_ACKNOWLEDGMENT_TIMEOUT("actionAcknowledgmentTimeout"),KEY_INJECTION_DELAY("keyInjectionDelay"),NATIVE_WEB_TAP("nativeWebTap"),IMAGE_MATCH_THRESHOLD("imageMatchThreshold"),FIX_IMAGE_FIND_SCREENSHOT_DIMENSIONS("fixImageFindScreenshotDims"),FIX_IMAGE_TEMPLATE_SIZE("fixImageTemplateSize"),CHECK_IMAGE_ELEMENT_STALENESS("checkForImageElementStaleness"),UPDATE_IMAGE_ELEMENT_POSITION("autoUpdateImageElementPosition"),NORMALIZE_TAG_NAMES("normalizeTagNames"),IMAGE_ELEMENT_TAP_STRATEGY("imageElementTapStrategy");

其实是没有我们想要的enableMultiWindows这个参数。所以我们接着看setSetting 的底层方法

public interface HasSettings extends ExecutesMethod {default void setSetting(Setting setting, Object value) {CommandExecutionHelper.execute(this, MobileCommand.setSettingsCommand(setting, value));}default Map<String, Object> getSettings() {Map.Entry<String, Map<String, ?>> keyValuePair = MobileCommand.getSettingsCommand();Response response = this.execute((String)keyValuePair.getKey(), (Map)keyValuePair.getValue());return ImmutableMap.builder().putAll((Map)Map.class.cast(response.getValue())).build();}
}

传进来的setting是在这里使用的MobileCommand.setSettingsCommand(setting, value)
所接着看源码,看看能否自己构造一个,看下setSettingsCommand

    public static Map.Entry<String, Map<String, ?>> setSettingsCommand(Setting setting, Object value) {return new AbstractMap.SimpleEntry(SET_SETTINGS, prepareArguments((String)"settings", (Object)prepareArguments(setting.toString(), value)));}

可以看到(Object)prepareArguments(setting.toString(), value)其实就是把enum的setting给转成了string,所以我们完全可以自己传进去一个enableMultiWindows,并且把value也设置成true, 这样手动生成一个AbstractMap.SimpleEntry就行了。
所以修改完成的代码就是

CommandExecutionHelper.execute(driver,new AbstractMap.SimpleEntry<>("setSettings", prepareArguments((String)"settings", (Object)prepareArguments("enableMultiWindows", true))));

在测试代码中执行这一行,就能解决没有得到弹窗XML元素的问题。

http://www.dtcms.com/wzjs/589313.html

相关文章:

  • 小程序开发公司案例免费做优化的网站
  • 假发网站建设怎么评价一个网站做的好否
  • 淘宝小网站怎么做的广告视频
  • 搭积木建网站软件手机网页无法打开因为reset
  • 邢台网站制作公司长沙网络推广联系昔年下拉
  • 深圳动态科技集团网站网站开发有哪些方向
  • 提供秦皇岛网站建设哪里有网站建设小公司生存
  • 广西医院的网站建设手机排行榜2024前十名最新
  • 检查网站的跳转路径是否清晰 哪里要优化仿唧唧帝笑话门户网站源码带多条采集规则 织梦搞笑图片视频模板
  • 标准件网站开发python自学网站
  • 上海网站开发设计培训phpcms移动端网站怎么做
  • 上海南山做网站含山县住房和城乡建设局网站
  • 做企业网站不好混建设网站免费模板下载
  • 石河子做网站企业网站建设代理商
  • 移动网站建设平台兰州网站建设q479185700強
  • 电影网站如何优化以下不属于网站建设优化
  • 开发做一个网站的流程创建网站的准备
  • 新闻源网站怎么做手机网站建设的第一个问题
  • 巴彦淖尔网站网站建设曲阜建设公司网站
  • wordpress 调用模板文件上海做网站优化价格
  • 室内设计招聘网站有哪些西安网站开发托管代运营
  • 如何申请cn域名做网站中国万网域名官网
  • 网站加载慢手机浏览器下载app
  • 免费建站哪个好计算机网络 网站
  • 怎么做室内设计公司网站关于三亚的网页设计
  • 金华网站建设建设设计网站app开发公司怎么学东西
  • 做网站的多钱wordpress旅游社区
  • 特效视频素材网站wordpress不同栏目使用不同模板
  • 网站制作:网推宝|百度网站制作需要多长时间
  • 风险的网站怎么出现微信朋友圈广告如何投放