context

Appium+python自动化13-native和webview切换

若如初见. 提交于 2020-01-14 20:16:05
前言 现在大部分app都是混合式的native+webview,对应native上的元素通过 uiautomatorviewer 很容易定位到,webview上的元素就无法识别了。 一、识别webview 1.用定位工具查看页面,发现页面上有些区域无法定位到,如下图左边红色区域,只能定位到这个大框框,红色框里面的元素是无法识别的。 2.这时候可以查看元素属性,如右图它的class属性,上面写着WebView,那毫无疑问这种页面就是webview了。 二、contexts 1.context是中文翻译是上下文,环境,当然学过selenium的同学,也可以理解为句柄(handle),其实是一回事,反正知道是两个不同的环境就行了。 2.先获取页面是contexts环境,如下图红色区域,获取的是一个list列表: NATIVE_APP:这个就是native,也就是原生的 WEBVIEW_com.xxxx :这个就是webview 3.当看到打印出来有下图两个,就说明获取到webview的context了(当然也有的app有坑,可能明明有webview,却通过contexts获取不到, 那是开发没打开webview调试) 三、切换到webview 1.要想操作webview上的元素,第一步需要切换环境(跟selenium的切换iframe,切换handle思路是一样) 2.切换方法

比较全的一个Android的UI像素尺寸工具类

删除回忆录丶 提交于 2020-01-14 15:08:07
import android.annotation.TargetApi; import android.app.Activity; import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; import android.os.Build; import android.util.TypedValue; import android.view.ViewConfiguration; import java.lang.reflect.Method; public class UIHelper { /** * dip转px */ public static int dipToPx(Context context, float dip) { return (int) (dip * context.getResources().getDisplayMetrics().density + 0.5f); } /** * px转dip */ public static int pxToDip(Context context, float pxValue) { final float scale = context

从源码角度来看BeanFactory和ApplicationContext的关系

走远了吗. 提交于 2020-01-14 14:08:56
大家好,我是小黑,这是年前的最后一篇推文,提前祝大家新年快乐~~ 这次我们从源码角度来聊聊 BeanFactory 和 ApplicationContext 的关系,讲一些网上文章不曾提到的点。 官方描述 先来看一下官方文档中关于 BeanFactory 和 ApplicationContext 的描述。 The org.springframework.beans and org.springframework.context packages are the basis for Spring Framework’s IoC container. The BeanFactory interface provides an advanced configuration mechanism capable of managing any type of object. ApplicationContext is a sub-interface of BeanFactory . It adds: Easier integration with Spring’s AOP features Message resource handling (for use in internationalization) Event publication Application-layer

Android项目实战(三十):Fresco加载gif图片并播放

家住魔仙堡 提交于 2020-01-14 11:42:28
前言: 项目中图文混合使用的太多太多了,但是绝大部分都是静态图片。 然而项目开发中有这么一个需求:显示一个出一个简短的动画(一般都不超过3秒)演示 比如说:一个功能提供很多步骤来教用户做广播体操,那么第一步就显示一个3秒钟的动作图,第二步显示一个几秒钟的动作图。(当然这个需求不是这个功能) 怎么解决呢:一确定这个需求我的第一实现思路便是让美工给我搞几个连续的图片,我使用帧动画来轮回播放 便实现了这个动画。 但是帧动画使用起来太复杂了,一套动作我要搞好久来实现。那么就想Android中支持不支持播放gif格式的图片呢,让美工搞动态图我直接拿来用多方便。 ------------------------------------------------------------------------------------------------------------------- 然后我就发现了Fresco,官方网址: http://www.fresco-cn.org/ ,中文文档,很方便查阅 看下官方的描述: Fresco 是一个强大的图片加载组件。 Fresco 中设计有一个叫做 image pipeline 的模块。它负责从网络,从本地文件系统,本地资源加载图片。为了最大限度节省空间和CPU时间,它含有3级缓存设计(2级内存,1级文件)。 Fresco 中设计有一个叫做

Android 中文 API (90) —— WindowManager

吃可爱长大的小学妹 提交于 2020-01-14 11:41:53
前言   本章内容是android.view.WindowManager,版本为Android 2.3 r1,翻译来自"逝憶流緣",欢迎大家访问他的博客: http://t.qq.com/pansonphy ,再次感谢"逝憶流緣" !期待你加入 Android 中文翻译组 ,联系我over140@gmail.com。 声明   欢迎转载,但请保留文章原始出处:)     博客园: http://www.cnblogs.com/     Android中文翻译组: http://goo.gl/6vJQl 正文   一、结构 public interface WindowManager extends android.view.ViewManager android.view.WindowManager   二、概述    该接口用于与窗口管理器交互。通过 Context.getSystemService(Context.WINDOW_SERVICE) 可以获取到 WindowManager 的实例。( 译者注: 如: WindowManager wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE); )    参见 getSystemService(String)    WINDOW_SERVICE

如何制作一个简单的HTML5移动app

谁说胖子不能爱 提交于 2020-01-14 06:29:55
1.开发工具的选择: 在编辑器的选择上,Web前端开发自由度是非常高的,即使是文本文档编辑器也可以作为Web开发的工具,但是为了提高开发效率,还是要选择一款功能强大且时髦的编辑器。深圳市博纳网络信息技术有限公司推荐的是近年来席卷前端界的SublimeText,一款独具个性的高级编辑器. 2.app代码编写 01 < html> 02 < canvas id=" myCanvas"></ canvas> 03 < script type=" text/ javascript"> 04 console. log(" get id - myCanvas"); 05 var canvas = document. getElementById(’ myCanvas’); 06 console. log(" get context - myCanvas"); 07 var context = canvas. getContext(" 2d"); 08 console. log(" set context font - myCanvas"); 09 context. fillStyle = ‘#808080’; 10 context. font = ‘italic 16px sans- serif’; 11 context. textBaseline=’ top’; 12 context.

Android 推送静音

断了今生、忘了曾经 提交于 2020-01-14 03:44:40
自Android8.0开始,推送的设置与过去的版本不一样了。 它的推送静音设置,并没有单独的静音选项来设置,而是通过对通知的重要性(Importance)来间接设置的。 重要性分为4类:Urgent、High、Medium、Low。其中Medium与Low就没有声音了。 而且,可以对推送进行分类,通过NotificationChannel这个来设置了。 这意味着,针对不同的账号权限,比如工作账号、浏览账号,评论通知、私信通知等,可以设置不同的channel(通过对channel的个性化设置,比如是否有声音之类的)。 channel的获取方式,如下: NotificationManager nfm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); // 获取所有的 List<NotificationChannel> channels = nfm.getNotificationChannels(); // 获取指定id的channel nfm.getNotificationChannel("channelId"); 这个是获取到的系统备份的channel,对它进行设置并不会更改到系统中的设置。 想要设置推送方式,还是需要去系统中设置,可以通过代码弹出系统设置页面,如下:

Spring Boot 开始一

梦想的初衷 提交于 2020-01-14 00:10:45
创建Maven 工程 pom.xml 文件如下 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.it.fandong.weapon</groupId> <artifactId>springbootExec</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.2.RELEASE</version> </parent> <dependencies> <dependency> <groupId

Tomcat 配置和spring-framework MVC配置简介

随声附和 提交于 2020-01-13 22:21:15
Tomcat启动时,先找系统变量CATALINA_BASE,如果没有,则找CATALINA_HOME。然后找这个变量所指的目录下的conf文件夹,从中读取配置文件。最重要的配置文件:server.xml 。要配置tomcat,基本上了解server.xml,context.xml和web.xml。 Server.xml -- tomcat主配置文件 Web.xml -- servlet与其他适用于整个Web应用程序设置的配置文件,必须符合servlet规范的标准格式。 Context.xml -- 默认的context配置,应用于安装了Tomcat的所有主机的所有部署内容。该文件的格式和标准的context XML片段文件的格式完全相同。它应包含在context元素中,而且暗含元素应嵌套与Context中。即该文件中的配置是所有web.xml的全局配置。 applicationContext.xml -- 默认的spring框架全局配置信息 {servlet-name}-servlet.xml -- Spring MVC 的Servlet的核心配置文件 Server.xml 配置元素说明: 元素名 属性 解释 server port 指定一个端口,这个端口负责监听关闭tomcat 的请求 shutdown 指定向端口发送的命令字符串 service name 指定service

Android显示单元--像素、分辨率、颜色

孤街醉人 提交于 2020-01-13 20:54:48
1.像素 老子曾说“天下难事必作于易,天下大事必作于细”,Android开发也是一样,再复杂的App也无非就是数百万个像素点的排列组合。像素虽然看似简单,但是里面大有学问。如果在开发时对像素单位不以为然仅仅一根筋的填数字,最后在模拟器上取得很好效果的界面在真机上也可能东倒西歪,这就是没打好基础的缘故。接下来通过介绍像素的基本概念及单位间的相互转化来进一步理解像素。 Android支持的像素单位有px、in、mm、dp、sp等。其中,px是手机屏幕上可显示的最小的单位,它与物理设备的显示屏有关。dp与物理设备无关,只与屏幕的尺寸有关,一般来说,同样尺寸的屏幕以dp计算的分辨率是一样的。sp的原理跟dp差不多,专门用于设置字体大小,通过sp设置的字体可以在系统设置字体大小(小、普通、大、超大)时有不同的显示效果。 dp和px的联系取决于具体设备上的像素密度,像素密度就是DisplayMetries里的density参数,当density=1.0时代表1dp=1px,当density=1.5时代表2dp=3px。具体的转换函数如下: //根据手机的分辨率从dp单位转换成px单位 public static int dip2px(Context context,float dpValue){ //获取当前手机的像素密度 final float scale=context