本篇文章内容摘要 " 讲解Python3+Selenium3如何处理Frame窗体" 同步视频知识与系列知识内容,可关注:[公众号]:柒哥测试:[WX]:Lee-890;[视频号]:柒哥思维 Frame窗体 我们在使用Selenium定位页面元素的时候,有时会遇到定位不到的问题,在页面上看到元素就在那儿,用浏览器的开发者工具也能够看到,而代码运行就是定位不到.当遇到这种情况时,很有可能是有Frame存在. Frame标签有Frameset.Frame.IFrame三种,Frameset…
Link定位 find_element_by_link_text方法是通过文本链接来定位元素. 以Bing首页中顶部的[学术]链接为例,如图所示. 查看对应的html代码.从html中我们能看出这是一个a标签具有href属性的链接,所以我们使用link定位来操作[学术]链接,如图所示. <a id="scpl2" aria-owns="scpc2" aria-controls="scpc2" aria-expanded="fals…
CSS 指层叠样式表 (CascadingStyleSheets),CSS一种用来表现HTML或XML等文件样式的计算机语言,其能够灵活的为页面提供丰富样式的风格. CSS使用选择器为页面元素绑定属性(如ID.class等),这些选择器可以被Selenium使用来进行定位元素.CSS较为灵活的选择控件的任意属性,CSS定位元素的速度比xpath速度快. CSS定位是通过find_element_by_css_selector方法. 仍然以bing搜索页为例介绍CSS定位的用法. 要操作Bing搜…
1.简介 本文主要介绍两个在测试过程中可能会用到的功能:Actions类中的拖拽操作和Actions类中的划取字段操作.例如:需要在一堆log字符中随机划取一段文字,然后右键选择摘取功能. 2.拖拽操作 鼠标拖拽操作,顾名思义就是:就是鼠标按住将一个元素拖拽到另一个元素上. 2.1基础讲解 //鼠标拖动API,首先实例化一个对象,后边将用这个对象进行一系列操作 Actions action = new Actions(webdriver); //source-要拖动的元素A,target-拖动元…
日常在访问页面时,文件上传与下载操作也常常用到,因此在Web自动化测试中也会遇到文件上传的情况.针对上传功能,WebDriver并没有提供对应的方法.针对上传文件的场景主要有两种解决思路: 同步视频知识与系列知识内容,可关注:[公众号]:柒哥测试:[WX]:Lee-890; 如果上传按钮是input标签,只要定位上传按钮,可优先尝试send_keys() 输入文件路径: 如果实际情况要打开系统的window窗口,选择本地文件进行添加,则可尝试借助AutoIt实现. 1. Send_keys()方…
在实际开发中很多时候我们都为了控件frame的操作焦头烂额. 例如:我们只想要获取view的width. 我们可以这么操作:view.frame.size.width 有时我们想要改变view的width然而我们不能直接改变->需要三部曲. 让人抓狂,为了解决这里烦恼我们可以通过改变类别来达到理想的效果. 下面是类别的.h文件: // // UIView+CXExtension.h //// // Created by ma c on 16/3/25. // Copyright © 2016年…
层级与属性结合定位 如果被定为的元素,无法通过自身属性来唯一标识自己,此时可以考虑借助上级元素来定位自己.举生活中的例子,一个婴儿刚出生,还没有姓名与身份证号,此时给婴儿进行检查时往往会标注为"某某之女".因为婴儿的母亲是确定的,找到母亲也就找到了婴儿.XPath的层级与属性结合定位就是如此. 假设bing页面的搜索框与搜索按钮元素,无法通过自身属性来定位.则可以借助其上一级(父对象)元素来定位,前端代码如图所示. 搜索框元素的上一级是1个div标签,该div标签的clalss属性等于…
1.简介 有些测试场景或者事件,Selenium根本就没有直接提供方法去操作,而且也不可能把各种测试场景都全面覆盖提供方法去操作.比如:就像鼠标悬停,一般测试场景鼠标悬停分两种常见,一种是鼠标悬停在某一个元素上方,然后会出现下拉子菜单,第二种就是在搜索输入过程,选择自动补全的字段.关于鼠标悬停,selenium把这个方法放在了Actions.java文件中,先来看看鼠标悬停出现下拉菜单的情况. 2.鼠标悬停出现下拉菜单 鼠标悬停出现下拉菜单,顾名思义就是:鼠标悬停在某一元素上出现下拉菜单. 2.…
1.简介 上一篇中,宏哥说的宏哥在最后提到网站的反爬虫机制,那么宏哥在自己本地做一个网页,没有那个反爬虫的机制,谷歌浏览器是不是就可以验证成功了,宏哥就想验证一下自己想法,于是写了这一篇文章,另外也是相对前边做一个简单的总结分享给小伙伴们或者童鞋们.废话不多数,直接进入今天的主题. 2.鼠标操作 WebElement的click()方法可实现元素的点击操作,但是没有提供鼠标的右击/双击/悬停/鼠标拖动等操作.这些操作需要通过Action类提供的方法来实现! 2.1Action常用的API Act…
大家在Debug程序的时候,是否遇到过因为"下一步"按太快,而导致跳过了想要深入分析的那段代码?是不是很想要有"回到上一步"这样的操作呢? 在IDEA中就提供了一个帮助你回退代码的机会,但这个方法并不是万能的.好了,下面就来具体说说这个功能的使用! 使用Reset Frame回退操作 不知道你在Debug的时候,是否有注意过下图标出的按钮Reset Frame,这就是今天要介绍的主角. 什么情况不能回退 比如:下面这样的顺序结构,是无法会退的: void test(…