Monkeyrunner的环境已经搭建完成,现在对Monkeyrunner做一个简介. Monkeyrunner工具提供了一套API让用户/测试人员来调用,调用这些api可以控制一个Android设备或模拟器,而不需要了解对应的源码. 有了Monkeyrunner,我们可以编写python脚本来控制apk包的安装和卸载.启动app.向app发送各种动作事件.截取图片并保存. 除此之外,MonkeyRunner是Google提供的一个基于坐标点的Android黑盒自动化测试工具.所以,要使用Mon…
简介 在前边的第二十二篇文章里,已经分享了通过获取控件的坐标点来获取点击事件的所需要的点击位置,那么还有没有其他方法来获取控件点击事件所需要的点击位置呢?答案是:Yes!因为在不同的大小屏幕的手机上获取控件的坐标点,不是一样的,而是有变化的,因此在不同的手机机型上,我们可能都需要重新获取坐标点,这么操作起来,如果操作控件特别的多,那么获取控件的坐标点就会显得特别的繁琐.因此我们可以通过获取控件的ID来避免获取控件坐标点的这种弊端. 通过控件ID实现自动化脚本的运行,就性能而言,会比控件坐标的实现…
如下效果图,点击一次添加按钮,动态生成一组combobox和slider.由于easyUI的下拉框和滑块使用相同的控件id,通过JS生成控件,如果两个id一样就会造成冲突,例如点击第一组的下拉框,第二组的下拉框也会跟着动. 如何避免这个冲突? 思路:可以在板块div外层加一个id,区分每组策略的combobox和slider. 步骤: 1.点击,用字符串拼接,插入html代码,这里的html代码有一个唯一Id 2.根据板块div的Id查找空间id,调用生成combobox和slider 具体实现…
1.jquery类库在我们实际项目中用的很多,大家经常需要根据控件的id,获取对应的html元素. 但是:当id含有特殊字符的时候,是不能选中的. 2. 自己简单的测试了下,jquery的id选择器只支持,单词.阿拉伯数字.下划线.中划线. 其中单词,包括英文字母.汉字,但是控件id属于客户不可见内容,实际中开发人员是不用汉字作为id的,  这里不考虑. 3.提供以下方法,开人人员只要将id转义后,jquery就能选中了.不用再考特殊字符的问题 function escapeJquery(src…
在之前的文章中,介绍过控件坐标和ID的获取方法,这里,我们再介绍一个新的工具-uiautomatorviewer. Uiautomatorviewer是Android sdk自带的工具,位置在sdk/tools下. 工具打开方法: 1.sdk/tools下,找到uiautomatorviewer,双击打开 2.在cmd命令行,直接输入uiautomatorviewer,打开该工具 打开该工具后,我们就可以开始使用了. 运行环境:Windows 使用方法: 1.连接模拟器或真机(我们这里使用模拟器…
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('…
今天碰到个比较奇葩的问题,因为动了一下目标框架,又原来的4.5.1改为3.5,然后又改回来了4.5.1,结果运行项目的时候发现界面js的计算,不能正常获值计算. 于是就开始找问题呗,先是发现这个二手项目,页面获取控件值的时候,居然直接写死id [不建议效仿,下文有更合适的解决方案] 例: $("#ContentPlaceHolder1_TB_ONetSellPrice").val(parseFloat(resultPrice).toFixed(2)); 而原来页面生成的是正常的,自然没…
//获取某容器控件中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…
一 Jquery获得服务器控件值的方法由于ASP.NET网页运行后,服务器控件会随机生成客户端id,jquery获取时候不太好操作,google了下,总结有以下3种方法: 服务器控件代码:<asp:TextBox ID="txtUserID" runat="server"></asp:TextBox> 1. $("#<%=txtUserID.ClientID%>").val(); 2. $("inpu…
原文地址:ADF控件ID变化引发JS无法定位控件的解决方法作者:Nicholas JSFF定义的控件ID到了客户端时往往会改变.例如在JSFF中的一个的ID为"ot1",但是当这个JSFF被嵌入TaskFlow中,并以Region的方式在页面展示时,在浏览器中,此控件的ID就会变成"r1:0:ot1".   ADF动态修改控件ID的原因其实是为了提供重用性的同时防止控件ID的冲突.试想如果有两个JSFF中分别都有一个,其ID均为ot1,那么当这两个JSFF被引入同一…
我们在用monkeyrunner进行Android自动化时,通过获取坐标点或控件ID进行一系列操作.由于使用坐标点时,屏幕分辨率一旦更改,则代码中用到坐标的地方都要修改,这样导致代码的复用率较低.因此,我们多采用控件ID操作(注:控件ID需要在模拟器中使用,对于绝大多数真机不适用). 但是,某些控件的ID是不存在的或重复存在,那么,遇到这种情况,我们怎样继续使用控件ID进行自动化测呢? 例如,下图中,我想要获取最右侧红框中的id/tv,但是,大家会发现,和它并列的也有重复的控件id值.现在我们就…
<转载>来自网络 一.ID是在客户端脚本里用!NAME是用于获取提交表单的某表单域信息,在form里面,如果不指定Name的话,就不会发送到服务器端,所以有name属性的控件,必须指定name.   二.以下元素input.select.form.frame.iframe用name,而以下元素table.tr. td.div.p.span.h1.li用id,表单元素(form input textarea select)与框架元素(iframe frame)用 name,这些元素都与表单(框架…
在html中:name指的是用户名称,ID指的是用户注册是系统自动分配给用户的一个序列号. name是用来提交数据的,提供给表单用,可以重复: id则针对文档操作时候用,不能重复.如:document.getElementById(): 一.ID是在客户端脚本里用!NAME是用于获取提交表单的某表单域信息,在form里面,如果不指定Name的话,就不会发送到服务器端,所以有name属性的控件,必须指定name. 二.以下元素input.select.form.frame.iframe用name,…
1. 问题描述 填报预览时,我们想获取到某个控件的值相对来说较容易.但如果控件是扩展的,就只能获取到第一个值,无法根据扩展一行行获取对应的值. 例:本意是想获取到袁成洁,结果还是获取到第一个单元格值孙林. 2. 解决方法 我们可以通过js事件来获取对应行控件的值. 3. 示例 新建一个模板,添加数据集ds1:SELECT * FROM 销量 A1单元格设置下拉框控件,B1单元格设置按钮控件,下拉框控件是向下扩展的,模板设计如下图所示: 给B1单元格按钮控件添加一个JS点击事件: js代码如下:…
我们在用monkeyrunner进行Android自动化时,通过获取坐标点或控件ID进行一系列操作.由于使用坐标点时,屏幕分辨率一旦更改,则代码中用到坐标的地方都要修改,这样导致代码的复用率较低.因此,我们多采用控件ID操作(注:控件ID需要在模拟器中使用,对于绝大多数真机不适用). 但是,某些控件的ID是不存在的或重复存在,那么,遇到这种情况,我们怎样继续使用控件ID进行自动化测呢? 例如,下图中,我想要获取最右侧红框中的id/tv,但是,大家会发现,和它并列的也有重复的控件id值.现在我们就…
1.JavaScript把控件id作为參数调用 <script type="text/javascript"> function xx(pmba) { document.getElementById(pmba).style.display = "block"; } </script> <div id="overlay"> <input type="button" value="…
代码如下: <%@ Page Language="C#" CodeFile="A.aspx.cs" Inherits="OrderManage_A" %> <%@ Register Src="../UserControl/CtrlCalendar.ascx" TagName="CtrlCalendar" TagPrefix="uc1" %> <html>…
有时候我们在页面需要使用iframe的方法来引用另一个页面,虽然个人建议不要使用iframe哈,但是有些时候是没得法了才使用的咯,那么在使用的过程中也会遇到某一些问题,我将自己遇到的问题记录下来方便以后的朋友在遇到了此问题少走弯路!!! 假如我首页index.hmtl使用了iframe引用了child.html页面代码如下: <div> <div class="panel panel-default"> <div> <div class=&qu…
很多时候我们需要HTML控件,感觉比服务器控件更加简介,清爽,那么如何获取HMTL控件的值呢,请看下面例子: 前台页面代码: <input id="Text1" type="text" name="test" /> 获取值的后台代码:Request.Form["test"];记住这里是使用的name获取它的值. 假如是这个控件: <select id="sel_sex" name=&quo…
一.问题提出 由于总体排版和设计的需要,我们往往创建母版页来实现整个网站的统一性,最近我由于统一性的需要,把原来整个项目单独的页面全部套用了母版页.但是出现了一系列失效错误. 二. 抽象模型 由于整个页面内容过多,所以我把这个页面中最为本质的问题抽象出来.原来单一页面,就是利用按钮触发JS事件,在文本域中插入“(_)”功能,其实现代码如下: <head id="Head1" runat="server"> <title>单一页面抽象模型-YJ…
在做动态获取控件时,时常需要根据Id得到控件,并对该控件进行操作,此时用 /// <summary>        /// 根据控件id得到控件        /// </summary>        /// <param name="name"></param>        /// <returns></returns>        private Control GetControl(string nam…
做了一个通过字符串ID查找页面控件并且给页面控件赋值的功能,过程中遇到了this.FindControl("id")返回值都是Null的问题,记录一下解决办法. 问题的原因是我所要查找的ID控件的父控件不是this所造成的. 所以我写了一个递归方法获取控件: /// <summary> /// 获取页面中某个控件 /// </summary> /// <param name="control">父控件容器</param>…
在做界面展示时涉及到表单行项目的增加和删除时,我们一帮都使用js的脚本实现表单行的增加和删除,那么在进行表单的提交的时我们会再页面上进行提交数据的初步校验,进行数据的初步校验时,就要动态获取控件的值.我在页面进行表单提交时做了一个js的function,用于校验提交数据是否符合要求,在function中我传递了控件名称,在方法体中使用控件名加下标的方法获取指定的某个控件,从而获取控件的值.在进行提交操作时,如果表单的行项目数大于1时或无行项目时,该js方法能正常执行,但如果提交的表单的行项目该好…
最近遇到一个怪事,通过正常打开浏览器,按照正常的web登录然后点击进入系统流程,将各控件的ID识别成功,然后使用 python3+selenium写好脚本,高高兴兴的用脚本跑时老是提示找不到控件,然后就重新打开浏览器登录重新识别控件,发现识别出来的控件ID又跟之前的不一样,瞬间怀疑是不是自己的眼睛出现视觉疲劳了. 重新关闭所有浏览器重新登录,再次识别该有问题的控件,发现识别出来的控件又跟之前第一次识别出来的一样,但是用脚本跑时还是一如既往的提示找不到该 控件,于是乎就博客园,csdn,stack…
js如何获取asp.net服务器端控件的值(label,textbox,dropdownlist,radiobuttonlist等) 欢迎访问原稿:http://hi.baidu.com/2wixiao/blog/item/68c9acd40ac9612006088b6f.html 在做 BS架构的项目时,经常遇到 需要用js 来调用 asp.net 服务器端控件的值. 大多数的 控件他的值都可以通过js调用它的 value属性来获得此控件的值,但是也有例外的情况:如 Label控件,他的值用j…
一.问题提出 由于总体排版和设计的需要,我们往往创建母版页来实现整个网站的统一性,最近我由于统一性的需要,把原来整个项目单独的页面全部套用了母版页.但是出现了一个错误……在我的Blog中记录一下,方便大家参考. 二. 抽象模型 由于整个页面内容过多,所以我把这个页面中最为本质的问题抽象出来.原来单一页面,就是利用按钮触发JS事件,在文本域中插入“(_)”功能,其实现代码如下: <head id="Head1" runat="server"> <ti…
使用过模板页的朋友都会很纳闷,怎么页面的用js通过getElementById(“id”):找不到对象.查看了页面源代码才发现,原来控件的ID变了,这是母版页导致的.因为母版页怕母版页本身页面中的控件ID和嵌套了它(母版页)的页面的ID相同而导致冲突,所以它(母版页)就悄悄的改变了它所嵌套的页面中的控件的ID值. 解决JS获取不到页面原本ID的方法是:document.getElementById('<%=txtName.ClientID %>'); 用了.ClientID 后就可也获取到控件…
在线导入butterknife的jar包 在Android-app-Open Module Settings下选中module下的app 选择Dependencies,点击右边的“+”,选择第一个:1. Library dependency 在弹出来的搜索框中输入butterknife进行搜索,选择第一个进行导入 增加build.gradle文件配置 在app的build.gradle文件的dependencies块中的 compile 'com.jakewharton:butterknife:…