Monkeyrunner的环境已经搭建完成,现在对Monkeyrunner做一个简介. Monkeyrunner工具提供了一套API让用户/测试人员来调用,调用这些api可以控制一个Android设备或模拟器,而不需要了解对应的源码. 有了Monkeyrunner,我们可以编写python脚本来控制apk包的安装和卸载.启动app.向app发送各种动作事件.截取图片并保存. 除此之外,MonkeyRunner是Google提供的一个基于坐标点的Android黑盒自动化测试工具.所以,要使用Mon…
在之前的文章中,介绍过控件坐标和ID的获取方法,这里,我们再介绍一个新的工具-uiautomatorviewer. Uiautomatorviewer是Android sdk自带的工具,位置在sdk/tools下. 工具打开方法: 1.sdk/tools下,找到uiautomatorviewer,双击打开 2.在cmd命令行,直接输入uiautomatorviewer,打开该工具 打开该工具后,我们就可以开始使用了. 运行环境:Windows 使用方法: 1.连接模拟器或真机(我们这里使用模拟器…
var repeaterId = '<%=rpData.ClientID %>'; //Repeater的客户端IDvar rows = <%=rpData.Items.Count%>; //Repeater的行数…
简介 在前边的第二十二篇文章里,已经分享了通过获取控件的坐标点来获取点击事件的所需要的点击位置,那么还有没有其他方法来获取控件点击事件所需要的点击位置呢?答案是:Yes!因为在不同的大小屏幕的手机上获取控件的坐标点,不是一样的,而是有变化的,因此在不同的手机机型上,我们可能都需要重新获取坐标点,这么操作起来,如果操作控件特别的多,那么获取控件的坐标点就会显得特别的繁琐.因此我们可以通过获取控件的ID来避免获取控件坐标点的这种弊端. 通过控件ID实现自动化脚本的运行,就性能而言,会比控件坐标的实现…
今天碰到个比较奇葩的问题,因为动了一下目标框架,又原来的4.5.1改为3.5,然后又改回来了4.5.1,结果运行项目的时候发现界面js的计算,不能正常获值计算. 于是就开始找问题呗,先是发现这个二手项目,页面获取控件值的时候,居然直接写死id [不建议效仿,下文有更合适的解决方案] 例: $("#ContentPlaceHolder1_TB_ONetSellPrice").val(parseFloat(resultPrice).toFixed(2)); 而原来页面生成的是正常的,自然没…
一.问题提出 由于总体排版和设计的需要,我们往往创建母版页来实现整个网站的统一性,最近我由于统一性的需要,把原来整个项目单独的页面全部套用了母版页.但是出现了一系列失效错误. 二. 抽象模型 由于整个页面内容过多,所以我把这个页面中最为本质的问题抽象出来.原来单一页面,就是利用按钮触发JS事件,在文本域中插入“(_)”功能,其实现代码如下: <head id="Head1" runat="server"> <title>单一页面抽象模型-YJ…
一.问题提出 由于总体排版和设计的需要,我们往往创建母版页来实现整个网站的统一性,最近我由于统一性的需要,把原来整个项目单独的页面全部套用了母版页.但是出现了一个错误……在我的Blog中记录一下,方便大家参考. 二. 抽象模型 由于整个页面内容过多,所以我把这个页面中最为本质的问题抽象出来.原来单一页面,就是利用按钮触发JS事件,在文本域中插入“(_)”功能,其实现代码如下: <head id="Head1" runat="server"> <ti…
我们在用monkeyrunner进行Android自动化时,通过获取坐标点或控件ID进行一系列操作.由于使用坐标点时,屏幕分辨率一旦更改,则代码中用到坐标的地方都要修改,这样导致代码的复用率较低.因此,我们多采用控件ID操作(注:控件ID需要在模拟器中使用,对于绝大多数真机不适用). 但是,某些控件的ID是不存在的或重复存在,那么,遇到这种情况,我们怎样继续使用控件ID进行自动化测呢? 例如,下图中,我想要获取最右侧红框中的id/tv,但是,大家会发现,和它并列的也有重复的控件id值.现在我们就…
我们在用monkeyrunner进行Android自动化时,通过获取坐标点或控件ID进行一系列操作.由于使用坐标点时,屏幕分辨率一旦更改,则代码中用到坐标的地方都要修改,这样导致代码的复用率较低.因此,我们多采用控件ID操作(注:控件ID需要在模拟器中使用,对于绝大多数真机不适用). 但是,某些控件的ID是不存在的或重复存在,那么,遇到这种情况,我们怎样继续使用控件ID进行自动化测呢? 例如,下图中,我想要获取最右侧红框中的id/tv,但是,大家会发现,和它并列的也有重复的控件id值.现在我们就…
ClientID是由ASP.Net生成的服务器控件得客户端标识符,当这个控件生成到客户端页面的时候,在客户端代码访问该控件时就需要通过ClientID来访问. 以文本框为例: 一.未使用母版页 js可以使用document.getElementById('控件的ID')形式,也可以使用document.getElementById('<%=控件的ID.ClientID %>')的形式. 注意:使用HTML <input>标签,想在后台取得其Value值(string text =…
普通状态中JS获取控件IDdocument.getElementById('controlID'); JS获取父窗口控件IDwindow.parent.document.getElementById("controlID"); JS获取iframe中控件IDwindow.frames['iframeID'].document.getElementById("controlID"); JS获取传入页面中控件IDopener.document.getElementByI…
原本想给一个button添加一个confirm,不同的分数提示不同的信息(大于80合格,小于80不合格,提示是否提交),最开始用了button.Atribute.Add();但是它每次获取到的是label控件在刷新前的值,后来在网上看到了ViewState[]的使用,但是还是不行,没办法,只能用js: <script> function myconfirm() { if(document.getElementById('lbl').value>=80) {return confirm('…
//获取某容器控件中id包含某字符串的控件id列表 //参数:容器控件.要查找的控件的id关键字 function GetIdListBySubKey(container,subIdKey) { var idList = ""; var child=container.childNodes; var chileLength=child.length; for(var i = 0; i < container.childNodes.length;i++) { if(containe…
在做动态获取控件时,时常需要根据Id得到控件,并对该控件进行操作,此时用 /// <summary>        /// 根据控件id得到控件        /// </summary>        /// <param name="name"></param>        /// <returns></returns>        private Control GetControl(string nam…
最近遇到一个怪事,通过正常打开浏览器,按照正常的web登录然后点击进入系统流程,将各控件的ID识别成功,然后使用 python3+selenium写好脚本,高高兴兴的用脚本跑时老是提示找不到控件,然后就重新打开浏览器登录重新识别控件,发现识别出来的控件ID又跟之前的不一样,瞬间怀疑是不是自己的眼睛出现视觉疲劳了. 重新关闭所有浏览器重新登录,再次识别该有问题的控件,发现识别出来的控件又跟之前第一次识别出来的一样,但是用脚本跑时还是一如既往的提示找不到该 控件,于是乎就博客园,csdn,stack…
1.jquery类库在我们实际项目中用的很多,大家经常需要根据控件的id,获取对应的html元素. 但是:当id含有特殊字符的时候,是不能选中的. 2. 自己简单的测试了下,jquery的id选择器只支持,单词.阿拉伯数字.下划线.中划线. 其中单词,包括英文字母.汉字,但是控件id属于客户不可见内容,实际中开发人员是不用汉字作为id的,  这里不考虑. 3.提供以下方法,开人人员只要将id转义后,jquery就能选中了.不用再考特殊字符的问题 function escapeJquery(src…
原文地址:ADF控件ID变化引发JS无法定位控件的解决方法作者:Nicholas JSFF定义的控件ID到了客户端时往往会改变.例如在JSFF中的一个的ID为"ot1",但是当这个JSFF被嵌入TaskFlow中,并以Region的方式在页面展示时,在浏览器中,此控件的ID就会变成"r1:0:ot1".   ADF动态修改控件ID的原因其实是为了提供重用性的同时防止控件ID的冲突.试想如果有两个JSFF中分别都有一个,其ID均为ot1,那么当这两个JSFF被引入同一…
使用过模板页的朋友都会很纳闷,怎么页面的用js通过getElementById(“id”):找不到对象.查看了页面源代码才发现,原来控件的ID变了,这是母版页导致的.因为母版页怕母版页本身页面中的控件ID和嵌套了它(母版页)的页面的ID相同而导致冲突,所以它(母版页)就悄悄的改变了它所嵌套的页面中的控件的ID值. 解决JS获取不到页面原本ID的方法是:document.getElementById('<%=txtName.ClientID %>'); 用了.ClientID 后就可也获取到控件…
Specify Point(指定点)控件的获取 NX9+VS2012 #include <uf.h> #include <uf_ui.h> UF_initialize(); //获取点XYZ坐标 PropertyList *SelectPoint1Props = point0->GetProperties(); Point3d SelectPoint1 = SelectPoint1Props->GetPoint("Point"); delete Se…
如下效果图,点击一次添加按钮,动态生成一组combobox和slider.由于easyUI的下拉框和滑块使用相同的控件id,通过JS生成控件,如果两个id一样就会造成冲突,例如点击第一组的下拉框,第二组的下拉框也会跟着动. 如何避免这个冲突? 思路:可以在板块div外层加一个id,区分每组策略的combobox和slider. 步骤: 1.点击,用字符串拼接,插入html代码,这里的html代码有一个唯一Id 2.根据板块div的Id查找空间id,调用生成combobox和slider 具体实现…
javascript客户端遍历控件与获取父容器对象示例代码 1,遍历也面中所有的控件function findControlAll()    {        var inputs=document.getElementsByTagName("input");        for(j=0;j<inputs.length;j++)           if(inputs[j].type=="text") //这儿将页面所有类型为text的控件找出来,也可以设置…
1.JavaScript把控件id作为參数调用 <script type="text/javascript"> function xx(pmba) { document.getElementById(pmba).style.display = "block"; } </script> <div id="overlay"> <input type="button" value="…
Face Collector(面收集器)控件的获取 NX9+VS2012 #include <uf.h> #include <uf_obj.h> UF_initialize(); //面收集器控件 PropertyList* FaceSelectProps = face_select0->GetProperties(); std::vector<NXOpen::TaggedObject *> faces = FaceSelectProps->GetTagge…
Object Color Picker(对象颜色拾取器)控件的获取 NX9+VS2012 #include <uf.h> #include <uf_obj.h> UF_initialize(); //获取体收集器控件 PropertyList* BodySelectProps = bodySelect0->GetProperties(); std::vector<NXOpen::TaggedObject *> Bodys = BodySelectProps->…
Expression(表达式)控件的获取 NX9+VS2012 #include <uf.h> #include <uf_modl.h> UF_initialize(); //获取表达式控件的值 PropertyList *ExpressionProps = expression0->GetProperties(); double ExpressionValue = ExpressionProps->GetDouble("Value"); delet…
Body Collector(体收集器)控件的获取 NX9+VS2012 #include <uf.h> #include <uf_obj.h> UF_initialize(); //获取体收集器控件 PropertyList* BodySelectProps = bodySelect0->GetProperties(); std::vector<NXOpen::TaggedObject *> Bodys = BodySelectProps->GetTagg…
在线导入butterknife的jar包 在Android-app-Open Module Settings下选中module下的app 选择Dependencies,点击右边的“+”,选择第一个:1. Library dependency 在弹出来的搜索框中输入butterknife进行搜索,选择第一个进行导入 增加build.gradle文件配置 在app的build.gradle文件的dependencies块中的 compile 'com.jakewharton:butterknife:…
一 Jquery获得服务器控件值的方法 由于ASP.NET网页运行后,服务器控件会随机生成客户端id,jquery获取时候不太好操作,google了下,总结有以下3种方法: 服务器控件代码:<asp:TextBox ID="txtUserID" runat="server"></asp:TextBox> 1. $("#<%=txtUserID.ClientID%>").val(); 2. $("inp…
原文网址:http://blog.csdn.net/harvic880925/article/details/40475367 前言:前一篇文章给大家展示了传统的Listview的写法,但有的时候我们并不想在DataHolder类中加一个标识是否选中的checked的成员变量,因为在项目开发中,大部分的ListItemLayout布局都是大家共用的,有些人根本不需要checkbox控件,所以会在初始化的时候把这个控件给隐藏掉,但我们的DataHolder在构造的时候以及ListItemAdapt…
  C#常用控件属性及方法介绍                                               目录 1.窗体(Form) 2.Label (标签)控件 3.TextBox(文本框)控件 4.RichTextBox控件 5.NumericUpDown控件 6.Button(按钮)控件 7.GroupBox(分组框)控件 8.RadioButton(单选按钮)控件 9.CheckBox(复选框)控件 10.ListBox(列表框)控件 11.ComboBox(组合框)控…