selenium
df0128
在路上
展开
-
UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe6 in position 96: ordinal not in range(128)
在使用python写好selenium自动化运行脚本后,使用HTMLTestRunner将运行结果写入一个html文件,出现如下错误:UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe6 in position 0: ordinal not in range(128) 检查发现,脚本内所有中文字符都已经设置为unico原创 2015-03-28 12:28:21 · 1793 阅读 · 0 评论 -
【selenium3+JAVA】界面自动化测试教程(七)——frame切换方法
在selenium的使用过程中,有时候会发现网站会有frame这种东西,如果某个元素在frame中,直接进行查询是无法查询到的,那么这时候就需要先切换frame再进行元素查找; 1.切换到顶层frame:driver.switchTo().defaultContent();2.切换到frame: 通过元素直接切换WebElement element = driver.find...原创 2018-05-17 17:22:11 · 2202 阅读 · 0 评论 -
【selenium3+JAVA】界面自动化测试教程(八)——切换窗口
有时候有多个窗口,测试的时候需要在这多个窗口中切换,可以用如下方法;/** * 切换窗口 * @param driver webDriver * @param windowsTitle 要切换到的windows的title * @return */ public static boolean switchWindows(WebDriver...原创 2018-09-24 12:26:34 · 1033 阅读 · 1 评论 -
【selenium3+JAVA】界面自动化测试教程(九)——select多选框的选择
在网页中有一种标签是select,其下子元素都是option,暂时找不到例子,就不写范例了,主要方法如下所示:System.setProperty("webdriver.chrome.driver", "D:\\test\\driver\\chromedriver.exe");ChromeDriver chrome = new ChromeDriver();//根据select元素获取sel...原创 2018-09-24 22:01:41 · 935 阅读 · 0 评论 -
【selenium3+JAVA】自动化测试教程(十一)——浏览器全屏截图与元素截图
在做界面自动化时,很需要截图功能,譬如在异常发生时或者验证点失败时,这样可以快速的定位失败原因,但是如果使用界面截图的方式虽然会把这个屏幕截下来,但是缺点在于机器不能睡眠,如果睡下去则会发现截图是黑的; 其实我们可以使用selenium的截图功能,这种方式只会截取网站的部分(如顶部的浏览器输入框之类则不会截取),其优点在于在截图时操作电脑不会影响截图,未登录状态也受影响; 方法如下(drive...原创 2018-05-17 11:44:32 · 3053 阅读 · 0 评论 -
【selenium3+JAVA】界面自动化测试教程(十)——鼠标键盘操作
有时候在使用selenium的时候会发现无法直接点元素,比如有的选择框是在我们鼠标放置在某个位置后才会出现,如果鼠标不在那个位置,选择框是不可见的,同样就无法点击,那么这时候我们就需要进行鼠标或者键盘操作了,selenium同样提供了鼠标键盘操作的方法,如下所示:System.setProperty("webdriver.chrome.driver", "D:\\test\\driver\\ch...原创 2018-09-25 14:20:13 · 1870 阅读 · 0 评论 -
【selenium3+JAVA】界面自动化测试教程(十二)——执行javaScript
selenium执行js就比较简单了,代码如下:JavascriptExecutor js = (JavascriptExecutor) driver;js.executeScript(String script, object... args);其用法就是执行js脚本,有一个常见用法就是用js来滚动页面,使用方法见链接:https://blog.csdn.net/df0128/artic...原创 2018-09-25 14:28:02 · 596 阅读 · 0 评论 -
【selenium3+JAVA】界面自动化测试教程(一)——浏览器的启动之chrome浏览器的启动
一、环境本机安装jdk1.8本机安装eclipseeclipse添加maven组件新建maven工程并在POM.xml中添加如下字段:<dependency> <groupId>org.seleniumhq.selenium</groupId&gt原创 2018-09-20 19:03:15 · 10002 阅读 · 2 评论 -
【selenium3+JAVA】界面自动化测试教程(一)——浏览器启动之firefox浏览器的启动
前言由于使用selenium3,故启动firefox浏览器时已经不能像以前那样不需要driver就可以启动了,需要添加driver,driver名称为geckodriver.exe,下载地址:https://github.com/mozilla/geckodriver/releases启动firefox浏览器1、设置驱动如前言所述,由于selenium3更新,导致现在启动firefox也需...原创 2018-09-21 23:15:36 · 2342 阅读 · 0 评论 -
【selenium3+JAVA】界面自动化测试教程(一)——浏览器的启动之IE浏览器的启动
前言同chrome、firefox,ie浏览器的启动一样需要driver,但是IEDriver不像chromeDriver一样有多个版本,不同版本对应不同的chrome版本,它只有32位版本和64位版本两种;下载地址为:https://www.seleniumhq.org/download/启动IE浏览器1、设置驱动设置驱动代码如下,第二个参数即为驱动的路径,可以任意设定:System...原创 2018-09-22 15:26:36 · 1542 阅读 · 1 评论 -
【selenium3+JAVA】界面自动化测试教程(二)——浏览器的关闭和基础方法
浏览器的关闭有两个方法,如下所示:System.setProperty("webdriver.chrome.driver", "D:\\test\\driver\\chromedriver.exe");ChromeDriver chrome = new ChromeDriver();chrome.close();chrome.quit();close和quit方法都可以关闭浏览器,不同...原创 2018-09-22 17:34:41 · 1658 阅读 · 0 评论 -
【selenium3+JAVA】界面自动化测试教程(三)——浏览器的全屏、最大化和设定大小位置
1、浏览器全屏使用代码如下:ChromeDriver chrome = new ChromeDriver();chrome.manage().window().fullscreen();如上代码会把浏览器全屏,效果嘛就是除了网站的内容部分,其他全部不显示;2、浏览器最大化使用代码如下:ChromeDriver chrome = new ChromeDriver();chrome....原创 2018-09-22 17:45:53 · 4360 阅读 · 0 评论 -
【selenium3+JAVA】界面自动化测试教程(六)——元素查找和操作
一、前言元素查找为selenium的基础操作,基本上大部分操作都是基于元素的,故此部分为必须掌握内容,方法包括通过名称、id、tagName、xpath等方法,下面会详细介绍这些方法;二、元素查找下面一一介绍这些方法,无论哪种查找方式,记得都应该在网站的开发者工具中使用自己写的查找方法去搜索下,看出来的元素是否是自己所需要的,以避免代码运行的时候出现元素查找不到的情况;(后边所有范例均在百...原创 2018-09-24 11:48:43 · 2041 阅读 · 0 评论 -
【selenium3+JAVA】界面自动化测试教程(五)——等待设置
超时设置分为三种,分别为显性等待,隐性等待和强制等待,如下所示:1、隐式等待此等待方式为全局共用,此处共有三个方法,分别为查找元素的等待超时时间、页面加载等待超时时间和js脚本运行超时时间,方法如下代码所示System.setProperty("webdriver.chrome.driver", "D:\\test\\driver\\chromedriver.exe");ChromeDri...原创 2018-09-23 17:52:33 · 946 阅读 · 0 评论 -
【selenium3+JAVA】界面自动化测试教程(四)——浏览器的打开url、前进、后退、刷新和cookie的操作
1、打开url这里打开网址有两个方法,如下所示:System.setProperty("webdriver.chrome.driver", "D:\\test\\driver\\chromedriver.exe");ChromeDriver chrome = new ChromeDriver();//第一种方法chrome.navigate().to("https://www.baidu...原创 2018-09-23 17:28:46 · 1682 阅读 · 1 评论 -
selenium python对于select选择项的使用
html有一种下拉列表标签,名为select,其内每一项均为option标签,对于这类元素,必须先定位到select元素,而后才能定义到option元素,selenium为我们提供了一个Select类以供我们使用,如下:要使用此模块,需要用如下语句导入:from selenium.webdriver.support.select import Select使用示例如下:如下为一原创 2015-04-24 09:38:06 · 8985 阅读 · 0 评论 -
selenium自动化测试中unittest断言的使用
由于selenium ide转化的脚本并未包含检查点,故我们使用unittest搭建selenium的自动化测试套件中可以使用unittest的断言来检查结果是否符合我们的要求:最常用的断言如下:1.相等断言:assertEqual(self, first, second, msg=None) 常用于title和url的对比来检查是否与预期结果一致; self.assertEqual原创 2015-04-20 11:09:04 · 6477 阅读 · 0 评论 -
selenium中使用js进行滚动条的滚动
由于有的网页内容较多,如不在显示范围内则无法找到该元素,那么就需要用滚动条来进行拖拉页面使该元素处于可视范围内,使用js可以简单的执行此操作,滚动范围为0--1000,代码如下: js="var q=document.documentElement.scrollTop=500"driver.execute_script(js)原创 2015-04-21 17:40:11 · 1462 阅读 · 0 评论 -
selenium实现模块化
在selenium的自动化脚本中,有许多东西是总是调用的,比如登陆,那么就可以将其模块化,独立出来,从而可以使自动化脚本更加简洁.如下以登陆为例来实现模块化:现有一个自动化脚本如下,为验证是否正常登陆的:test1.py# -*- coding: UTF-8 -*-'''Created on 2015年3月28日@author: dff'''from selenium原创 2015-04-08 11:15:05 · 2663 阅读 · 0 评论 -
selenium2+python元素选择器API
selenium有如下几种元素定位方式:1.id定位方式find_element_by_id(self, id_) id定位,定位一个元素(用于定位一个具有id的元素,常用)find_elements_by_id(self, id_) id定位,定位一组元素(用于定位一组相同id的元素,不常用)2.name定位方式find_element_b原创 2015-04-22 10:50:44 · 1518 阅读 · 0 评论 -
selenium2+python设置等待时间
设置等待时间有三种方法:1.implicitly_wait(self, time_to_wait) 此方法在每个脚本中只设定一次就可以了,其作用为设置一个超时等待时间,如一个语句完成超时时间或者等待一个元素被发现的超时时间, 例如设置为30s,则如果在脚本执行时一个元素无法被找到,会发现在30s后才结束脚本提示失败;2.WebDriverWait(object) 此方法为一原创 2015-05-06 11:42:17 · 4652 阅读 · 0 评论 -
selenium2+python模拟鼠标键盘操作类ActionChains的API
ActionChains类继承自object类,但是需要为其传入一个driver对象,即ActionChains(driver)此类常用于模拟鼠标键盘操作,其API列表如下:perform() 此方法执行储存的所有动作单击 click(self, on_element=None),此方法即为鼠标单击动作,输入参数为一个元素,可以不输入 用法:ActionChains(原创 2015-05-06 15:35:19 · 10570 阅读 · 0 评论 -
selenium2+python元素状态获取api
一些常用的元素状态获取api如下:1.tag_name 获取该元素的标签名称,需要先定位到该元素 用法:driver.find_element_by_id("cp").tag_name2.text 获取该元素的内容,需要先定位到该元素 用法:driver.find_element_by_id("cp").text3.click()原创 2015-05-06 14:29:53 · 1249 阅读 · 0 评论 -
selenium2+python如何启动Ie和Chrome进行自动化测试
由于在实际的测试过程中,我们的自动化程序不仅仅要在firefox上运行,还需要在其他主流浏览器上运行以测试兼容性,所以本篇介绍如何启动其他浏览器进行测试,如下介绍如何在Ie和Chrome上运行原创 2015-05-16 20:50:17 · 2303 阅读 · 0 评论 -
selenium2+python+eclipse自动化测试环境搭建
第一步 安装Python 1.在linux系统中有默认安装,故无需安装; 2.在windows系统中需要手动安装,可以去官网https://www.python.org/downloads/下载需要的版本,建议下载2.7.x版本,支持度较高 安装时建议用默认配置,结束后记得将安装路径添加到环境变量PATH中。 第二步 安装setuptools 此用具在此处是用来帮助安装第三步的pip工具的原创 2015-05-07 14:33:40 · 1427 阅读 · 0 评论 -
【selenium+java】使用js滚动页面
现在有的web页面过长,在使用selenium查找元素时会出现无法查找到元素的情况,selenium没有好用的方法来滚动页面,所以可以使用js的方法来滚动页面,有这样几种情况和方案可以使用:整个页面的滚动; 可以使用js:document.body.scrollTop=0;(0可以根据需要设置); 或者window.scrollTo(0,1000);但是有时候滚动条不在整个html上,...原创 2018-05-04 11:47:30 · 1728 阅读 · 0 评论 -
【selenim3+Python】界面自动化测试教程
一、打开浏览器selenium3支持基本上目前市面上最常见的几种浏览器,本文只写其中的chrome、firefox和ie的相关操作;1、chrome浏览器(1)、chromeDriver获取chromeDriver获取地址为:http://chromedriver.storage.googleapis.com/index.html在此路径下可以找到所有版本的driver,此页面下的LAT...原创 2018-09-30 13:30:07 · 3619 阅读 · 3 评论