测试小工具_Javascript碎碎念

Javascript是通过客户端浏览器进行解析,浏览器内置了负责解析Javascript的解析器,由于每一种浏览器的解析器不一样,所以可能会出现相同的JS代码在不同的浏览器效果不一样,故日常测试中一定需要考虑兼容性测试。

Javascript的作用是提供页面交互效果,通过对页面上的元素进行操控从而达到页面元素按照预期进行显示。本文以编写测试小工具用到的js模块来进行说明。

Javascript模块

1.获取html前端数据

1.输入框:var input=$("#input").val()                                                                 //获取输入框输入的内容

2.单选框:var radio=$('input[name="form-project-manager[]"]:checked').val()  //选中单选框后对应的实际是value值

3.下拉框(单选):var option = $('#drop').val()

4.表格中某行某列的值:var txt=document.getElementById ("table");

                                       txt.rows[i].cells[j].innerHTML;                                       //获取table中第i行第j列的值

2.前后端数据交互

1.前端html按钮元素处绑定onclick事件,如下面所示绑定了POST()

<button id="POST" class="btn btn-primary btn-block" type="button" onclick="POST()">Submit</button>

2.点击按钮后触发Javascript编写post()函数

function POST(){

post_data_string=JSON.stringify(value())    //获取到的前端数据

$.post(                                                           //发起ajax的post请求

"/unlock/post",                                              // 请求的url,此URL为发起POST请求时的URL地址,即URL配置里面的地址

post_data_string,                                        // 发送的数据

function(data_post_code){                        // 回调函数,data_post_code为后端处理后的结果

code=data_post_code.code

if(code==0){                                            //根据code返回的结果返回给前端的弹窗显示结果页面

$("#modal-submit").modal('show')

$('.container1').text(data_post_code.message)

$('.modal-title').text("成功")}

else{

$("#modal-submit").modal('show')

$('.container1').text(data_post_code.message)

$('.modal-title').text("失败")}});};

3.前端html弹框元素透出后端结果,至此完成前后端交互整个过程

3.事件概念的理解

事件是javaScript和DOM之间交互的桥梁,遵循你若触发,我便执行,即事件发生,调用它的处理函数执行相应的JavaScript代码给出响应。

本次小工具重点用到了onclick事件,onclick事件:单击元素时执行功能,具体的实现方式可见前后端数据交互中的说明

4.this的作用域【待补充】

5.通过radio控制div里的内容显示或隐藏,无法对按钮button生效

1)html中对单选框元素绑定divClick()事件

<input type="radio" id="options Radios" name="options Radiosinline" value="1" class="mr-1" checked onclick="divClick(); "style="margin-left:30px;"><span class="mr-6 text-muted">单选框1</span>

2)根据绑定的divClick()事件,Javascript中根据单选框的值来对div里的内容进行显示或隐藏

function divClick(){

var show=$('input[name="optionsRadiosinline"]:checked').val()

if(show=="1"){

document.getElementById("div").style.display="block";     //显示

}

else{

document.getElementById("div").style.display="none";     //隐藏

}

}

6.实时监听输入框非空

$("#input").on("input",function(){

if ($('#input').val()==""){

$(this).addClass("is-invalid");

}

elseif($('#input').val()!==""){

$(this).removeClass("is-invalid");

}});

实战中一些收获点,持续补充

1.尽量复用同一个元素,比如出现在不同页面下拉框元素,但由于输出效果一致,无需在html中写两个下拉框元素,只需写一个即可

2.同一个按钮,期望由于单选框选择的差异,可在前端输出相应的文案,可按照如下的方式完成:

var show=$('input[name="optionsRadiosinline"]:checked').val()

if(show=="1"){

$('#POST').text("确认添加")

}

else{

$('#POST').text("提交申请")

}

3.强制往输入框内写入期望的值

document.getElementById("input").value=message[0]

4.下拉框选项需通过后端代码传回的值进行显示

// 获取后端的值

code=data_post_code.code

message=data_post_code.message

data=data_post_code.data

var options="";

for(vari=0,len=data.length;i<len;i++){

var parkdata=data[i];       //拼接成多个<option><option/>

if(i==0){

options='<option value="'+parkdata[0]+'" selected>'+parkdata[0]+'</option>'

}

else{

options+='<option value="'+parkdata[0]+'">'+parkdata[0]+'</option>'

}

}

$("#drop").append(options);//根据selectpicker根据你自己的ID写)填充到select标签中

$('#drop').selectpicker('refresh');//必须有的,强制刷新,不加会导致数据在前端无法显示$('#drop').selectpicker('render');//render方法

5.一个按钮上需要绑定多个函数,采用分号即可

<a> <button class="btn btn-primary btn-block" type="button" onclick="P1();P2()">查询</button></a>

6.table元素中的值需通过后端代码传回的值进行显示【待补充】

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,744评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,505评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,105评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,242评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,269评论 6 389
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,215评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,096评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,939评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,354评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,573评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,745评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,448评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,048评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,683评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,838评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,776评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,652评论 2 354

推荐阅读更多精彩内容