alert

Selenium-Switch与SelectApi接口详解

给你一囗甜甜゛ 提交于 2020-03-25 08:41:01
Switch 我们在UI自动化测试时,总会出现新建一个tab页面、弹出一个浏览器级别的弹框或者是出现一个iframe标签,这时我们用WebDriver提供的Api接口就无法处理这些情况了。需要用到Selenium单独提供的模块switch_to模块 引用路径 # 第一种方式可以通过直接导入SwitchTo模块来进行操作 from selenium.webdriver.remote.switch_to import SwitchTo # 第二种方式是直接通过Webdriver的switch_to来操作 driver.switch_to 其实webdriver在以前的版本中已经为我们封装好了切换Windows、Alert、Iframe,现在依然可以使用,但是会被打上横线,代表他已经过时了,建议使用SwitchTo类来进行操作。 SwitchToWindows handles = driver.window_handles # SwitchToWindows接受浏览器TAB的句柄 driver.switch_to.window(handles[1]) SwitchToFrame # SwitchToFrame支持id、name、frame的element # 接受定位到的iframe的Element,这样就可以通过任意一种定位方式进行定位了 frameElement = driver

attachEvent和addEventListener

喜欢而已 提交于 2020-03-24 21:49:20
曾经写过一篇随笔, attachEvent和addEventListener ,跟本文内容有很多相似之处 本文链接: javascript之事件绑定 1、原始写法 <div onclick="alert('you clicked me just now);'">click me</div> 在刚开始学习前端的时候,我们不免这么将事件绑定写在html中,后来我们想将html和js脚本进行分离便这么写 <div id="test">click me</div> <script type="text/javascript"> test.onclick=function(){ alert("you click me just now"); }; </script> 这么写其实和上一种写法在执行上是没有任何分别的,只是他略微显得“高大上”一点。在此,需要感谢八楼@con的提醒,其实他们还是有一点点的区别,因为它们的执行环境是稍微有点不同的,其函数作用域中包含的对象是不一样的。详情可看本文的留言。 当我们写更复杂一些的脚本的时候,发现这种“ 对象.事件=事件处理函数 ”方式并不好,因为后面的事件明显得会覆盖前一个事件处理函数,多次事件绑定的结果往往是仅执行最后一个事件处理函数,可以看 attachEvent和addEventListener 文中示例。 后来,我们必须在实际开发中放弃这种

javascript——BOM窗口的大小

假如想象 提交于 2020-03-24 06:08:06
可视区的宽、高:clientWidth 、clientHeight 滚动距离:scrollTop 内容的实际高度:scrollHeight HTML代码: <body style="height:2000px;"> <div id="div1" style="width:100px; height:100px; border:1px solid red; padding:10px; margin:10px;"> <div style="width:100px; height:600px; background:#ccc;"></div> </div> </body> JS代码: // 可视区的宽、高 // alert(document.documentElement.clientWidth); // alert(document.documentElement.clientHeight); //滚动距离 document.onclick = function(){ // alert(document.documentElement.scrollTop); //IE/火狐支持 // alert(document.body.scrollTop); //仅Chrome支持 var scrollTop = document.documentElement.scrollTop ||

js预解析

只愿长相守 提交于 2020-03-24 03:33:19
js预解析 1. 定义 预解析:在当前作用域下,js运行之前,会把带有var和function关键字的事先声明,并在内存中安排好。然后再从上到下执行js语句。 预解析只会发生在通过var定义的变量和function上。 2. var 通过var关键字定义的变量进行预解析的时候:都是声明declare,不管它有没有赋值,都会赋值undefined。 alert(a); //undefined var a = 1; alert(b); //undefined var b = function(){ } alert(c); //undefined var c; 只要是通过var定义的,不管是变量,还是函数,都是先赋值undefined,如果是变量,也不管变量有没有赋值,在预解析阶段,都是会被赋值为undefined。 3. function function进行预解析的时候,不仅是声明而且还定义(define)了,但是它存储的数据的那个空间里面存储的是代码是字符串,没有任何意义。 alert(a); //弹出的是下面的function function a(){   alert("预解析function") } 注意这种情况 定义一个函数想要立即执行,写成如下形式是不可行的,在预解释的时候,它把它分解成两部分来对待,第一部分是fn函数,而第二部分是(),一个匿名函数,执行时会报错

js基础笔记 javascript数据类型

折月煮酒 提交于 2020-03-24 01:50:50
在javascript中有5中基本数据类型分别是:Undefined、Null、Boolean、Number、String。 和一个复杂数据类型:Object。 一、Undefined 1. Undefined类型只有一个值undefined。当用var声明一个值并未对其进行初始化的时候,这个变量的值就是undefined。 var boss; alert(typeof boss); 2. 包含undefined值得变量与尚未定义的变量是不一样的。 var boss; alert(boss); // undefined alert(message); // 报错 Uncaught ReferenceError: message is not defined 3.对为声明的变量执行typeof 也会返回undefined // var message; alert(typeof message); // undefined 4. 我们要尽可能的在声明变量的时候对其赋予初始值,如果每一个变量都被赋予了初始值,那么当typeof 某个变量返回undefined时我们就知道被检测的变量是没有被声明而不是没有没初始化了。 二、Null 1. Null 类型只有一个值null。从逻辑角度来看空值是标识一个空对象指针,而这也是使用typeof 检测null 返回对象的原因 var a =

JS截取字符串常用方法

我的未来我决定 提交于 2020-03-23 18:27:29
reference:http://www.jb51.net/article/42482.htm 使用 substring()或者slice() 函数:split() 功能:使用一个指定的分隔符把一个字符串分割存储到数组 例子: str=”jpg|bmp|gif|ico|png”; arr=theString.split(”|”); //arr是一个包含字符值”jpg”、”bmp”、”gif”、”ico”和”png”的数组 函数:Join() 功能:使用您选择的分隔符将一个数组合并为一个字符串 例子: var delimitedString=myArray.join(delimiter); var myList=new Array(”jpg”,”bmp”,”gif”,”ico”,”png”); var portableList=myList.join(”|”); //结果是jpg|bmp|gif|ico|png 函数:substring() 功能:字符串截取,substring 方法用于提取字符串中介于两个指定下标之间的字符。 语法 :stringObject.substring(start,stop) 参数 描述 start 必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。 stop 可选。一个非负的整数,比要提取的子串的最后一个字符在

React Native热更新(iOS)-Pushy

帅比萌擦擦* 提交于 2020-03-21 16:55:02
React Native 的出现,使的开发 iOS 代码出现了更便捷的方式。由于 RN 是使用脚本语言编写的,实现了“解释执行”的方式,而这种执行方式的修改只需替换脚步即可,不需要重新发布程序,热更新的方式极大的方便了迭代开发。 今天我们选择的热更新组件是 Pushy ,这是国内开发的,功能类似 CodePush ( CodePush 在国内访问及其慢,长城宽度根本无法访问), Pushy 支持增量更新,最大化的降低更新的数据量,节约流量。 下面介绍如何利用Pushy进行热更新: 1. 创建react native工程 $react-native init PushyDemo 2. 安装update工具, Pushy热更新需要update配合使用 RN 0.29+ $npm install -g react-native-update-cli RN 0.28及以下 $npm install -g react-native-update-cli rnpm 3. 在PushyDemo目录下添加Pushy组件并自动link RN 0.29+ $ npm install --save react-native-update $ react-native link react-native-update RN 0.27-0.28 $ npm install --save react

iframe父子兄弟之间调用传值(contentWindow && parent)

折月煮酒 提交于 2020-03-21 14:32:09
学习一个知识点最好的方法就是自己动手去的实现一些简单的helloworld,虽然可以在网上可以找到很多总结,但自己实现的过程才是自己的,期间遇到问题并解决问题的过程也会让自己记忆理解更加深刻。 更多信息,请参考: http://www.cxyeye.com/ iframe的调用包括以下几个方面:(调用包含html dom,js全局变量,js方法) 主页面调用iframe; iframe页面调用主页面; 主页面的包含的iframe之间相互调用; 主要知识点 1:document.getElementById("ii").contentWindow 得到iframe对象后,就可以通过 contentWindow得到iframe包含页面的window对象,然后就可以正常访问页面元素了; 2:$("#ii")[0].contentWindow 如果用jquery选择器获得iframe,需要加一个【0】; 3:$("#ii")[0].contentWindow.$("#dd").val() 可以在得到iframe的window对象后接着使用jquery选择器进行页面操作; 4:$("#ii")[0].contentWindow.hellobaby="dsafdsafsdafsdafsdafsdafsadfsadfsdafsadfdsaffdsaaaaaaaaaaaaa";

4.1 document对象

不羁的心 提交于 2020-03-21 11:32:26
找元素: <head> <style type="text/css"> </style> </head> <body> windows对象 对窗口进行操作 <div id="a">document对象 对html文档内容进行操作</div> <span class="b">这是元素</span> <span class="b">这是元1素</span> <span class="b">这是元素2</span> <input type="button" value="按钮" name="c" /> </body> <script type="text/javascript"> 找元素: ①ID找元素 var a = document.getElementById("a"); alert(a) ②class找元素 var b = document.getElementsByClassName("b"); alert(b[1]) ③标签名找元素 var c = document.getElementsByTagName("span"); alert(c[1]) ④表单元素通过name找元素 var d = document.getElementsByName("c"); alert(d[0]); </script> id找元素 class找   表单name找元素 操作内容: <head

js动态添加事件

谁说我不能喝 提交于 2020-03-21 08:52:55
转载的,但不明确出处 往往我们需要在 JS 中动态添加事件,这就涉及到浏览器兼容性问题了,以下谈及的几种方法,我们也常常混合使用。 方法一、setAttribute var obj = document.getElementById("obj"); obj.setAttribute("onclick", "javascript:alert('测试');"); 这里利用 setAttribute 指定 onclick 属性,简单,很好理解, 但是:IE 不支持, IE 并不是不支持 setAttribute 这个函数,而是不支持用 setAttribute 设置某些属性,包括对象属性、集合属性、事件属性,也就是说用 setAttribute 设置 style、onclick、onmouseover 这些属性在 IE 中是行不通的。 LEO:在IE6下尝试成功 方法二、用 attachEvent 和 addEventListener IE 支持 attachEvent obj.attachEvent("onclick", Foo); function Foo() { alert("测试"); } 也可写在一起 obj.attachEvent("onclick", function(){alert("测试");}); 其它浏览器支持 addEventListener obj