selenium学习笔记(1)】的更多相关文章

selenium 学习整理 初学者,如果有不当得地方请指出,非常感谢. 准备事项: 1. Python 安装包 安装Python,并勾选添加环境变量. 安装完成后,打开dos窗口,输入python,看能否进入python命令行模式.如果不能就手动添加一下环境变量. 2. Chrome 安装包(其他浏览器也可以,Chrome支持得比较好:如果用IE得话,需要再设置--安全,关闭浏览器得保护模式,一个四个) 3. 浏览器版本对应得ChromeDriver.exe (去浏览器官网可以找到,必须和浏览器…
说明:每次学习各种语言时,环境搭建访问国外网址最头疼了,现在只要是工具下载好放到自己网盘,可以随时用. 1.首先工具准备,selenium需要用到的 下载地址 访问密码 ff8f 2.我选择的语言时junit eclipse开发 junit包下载: 下载 访问密码 c23d eclipse自己百度 3.实例练习. 具体步骤百度 4.遇见的问题 等待解决的 1).如下图,如何让变量pwds每次自动加1呢?假设pwds初始值为1,我想每次自动加1,向下图所示在我运行完${pwds}+1后我打印出来结…
收拾一下心情开始新的一周工作 继续是selenium的学习.配置成功后 由于所有操作都是建立在页面元素基础上的.所以下来就是学习定位元素 首先是基础的定位.就使用博客园首页搜索框为例: 下面是代码: #!/usr/bin/env python # -*- coding: utf_8 -*- from learn_webdriver import Webdriver from selenium import webdriver browser_chrome = webdriver.Chrome(W…
博主自己捣鼓的接口框架先到这里 等工作上正式开始使用再后续完善需求 还是继续学习python.学编程就直接动手写 就想看看python+selenium的组合 什么都不多说.先下载安装 博主这里已经安装了pip 所以直接cmd进入python路径下的Scripts文件目录下…
我们也可以用xml来定义一个信息更为丰富的UIMap.xml文件,比如,额外还添加控件所属的页,控件的类型,然后解析构建一个XMLParser类来读取相应的值. <?xml version="1.0" encoding="utf-8" ?> <UIMap> <Object ID="User Name"> <Attributes Locator="userName" Page="…
1.百度搜索目标--实例 boolean flag; //点击次数 int shcs=3; int i=0; //窗口焦点控制 String detailWindowHandle = null; //火狐浏览器 System.setProperty("webdriver.firefox.bin", "D:/Softwareinstallation/huohu/firefox.exe"); WebDriver driver = new FirefoxDriver();…
今天研究了下ie.chrome.firefox浏览器执行脚本 1.首先firefox下执行时,我是安装在d盘了,所以要更改路径 //如果火狐浏览器没有默认安装在C盘,需要制定其路径 System.setProperty("webdriver.firefox.bin", "D:/Softwareinstallation/huohu/firefox.exe");  WebDriver driver = new FirefoxDriver(); 2.在chrome下执行时…
一.浏览器操作相关 from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() # 窗口最大化 driver.set_window_size(400,800) # 设置窗口大小 driver.back() # 回退一层 driver.forward() # 前进一层 driver.quit() # 退出浏览器 driver.close() # 关闭浏览器 二.元素定位 # 根据id定位 d…
Selenium是一个强大的自动化测试工具,它的核心思想是通过JavaScript嵌入的方式直接操纵页面的DOM来模拟手工测试工作. Selenium IDE,一个Firefox插件,可以在Firefox中录制.编辑.回放测试用例,还可以把测试用例转换为可以通过Selenium RC运行的各种编程语言的版本 Selenium Remote Control是一个代理服务器,它可以把各种编程语言编写的Selenium测试程序发送到指定的浏览器上并运行 Selenium RC是一个代理服务器,它的内容…
博主在尝试对百度首页用selenium完成自动登录的功能 反复多次尝试元素定位方法也未写错.最后发现问题原因: 脚本运行速度快于页面加载速度 如百度首页登录例子.脚本已经开始寻找登录弹窗 但是页面仍在加载.导致程序报错 博主就整理下智能等待的方法 首先是显示等待:即等待页面某个元素出现.超时则抛出错误 #!/usr/bin/env python # -*- coding: utf_8 -*- from learn_webdriver import Webdriver from selenium…
之前提到selenium加入unittest框架.可以引入HTMLTestRunner扩展.以此来生成测试报告 首先是分享下载的百度云地址 http://pan.baidu.com/s/1pKUItWR 文件名:HTMLTestRunner.py 下载成功后放入相应的python目录下如: “C:\Python27\Lib” 通过python自带的IDLE 如果没有报错.则说明添加成功 之后是利用之前写好的博客园登录脚本 #!/usr/bin/env python # -*- coding: u…
利用firefox浏览器的selenium IDE可以直接生成webdriver+unittest的python脚本 当然博主是要为了自己编写脚本.对用例内容进行了修改,把元素校验功能也放入了用例中 代码如下: #!/usr/bin/env python # -*- coding: utf-8 -*- import unittest from selenium import webdriver from selenium.common.exceptions import NoSuchElemen…
今天自己一直在瞎捣鼓 最后这里整理下 selenium IDE 这个录制工具的下载安装 首先这个工具只支持火狐浏览器firefox.使用火狐浏览器进入selenium官网: http://www.seleniumhq.org/download/ 依次下图操作 等待安装成功后.重启浏览器即可使用selenium IDE录制工具 入口如下图: 录制成功后.可以根据需要生成代码,这里可以直接生成unittest框架下webdriver基础的python代码…
简单的介绍下xpath和css的定位 理论知识就不罗列了 还是利用博客园的首页.直接附上代码: 这个是xpath #!/usr/bin/env python # -*- coding: utf_8 -*- from learn_webdriver import Webdriver from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from time imp…
昨天是简单的操作.之后是复杂的操作 首先是鼠标事件 AcationChains类  鼠标操作的常用方法: 右击 context_click() 双击 double_click() 拖动      drag_and_drop() 鼠标悬停在一个元素上      move_to_element() 按下鼠标左键在一个元素上   click_and_hold() 优先介绍这个是因为有些页面的元素是隐藏的.要通过鼠标悬停才显示 这里举的例子就是博客园的.代码如下: #!/usr/bin/env pyth…
selenium安装后默认安装firefox可以直接使用,当然可以通过其它浏览器 博主这里整理了:chrome . IE 首先是下载地址 http://docs.seleniumhq.org/download/ 可以找到对应的ie 与chrome浏览器的版本.博主这里也弄了一个百度云的分享地址 http://pan.baidu.com/s/1pKUItWR 下载成功后解压复制到对应的目录下 如IE的: “C:\Program Files\Internet Explorer(PS:博主机器是64位…
技术体系 基于代码的测试(Code-Based Testing) 基于协议的测试(Protocol-Based Testing) 基于界面的测试(GUI-Based Testing) 工作原理 基于代码 定义期望结果 调用被测对象 对比实际结果 难点:1.前置条件或环境的准备:2.被测代码又大量的异常 优点:1.容易实施:2.原理简单:3.不需要太复杂的编程能力 基于协议 并非直接调用代码,而是模拟用户发送数据包 典型的接口测试,偏黑盒 非常清楚协议的工作过程 能够利用编程语言来操作协议 经常用…
1.什么是Selenium,为什么web测试,大家都用它? Selenium设计初衷就是为web项目的验收测试再开发.内核使用的是javaScript语言编写,几乎支持所以能运行javaScript的浏览器,支持windows\linux\macos等各种平台. Selenium 脚本是用多种受支持的编程语言中的一种编写的 —— 目前可用的有 Java.Ruby 和 Python 驱动程序.这些脚本在浏览器之外的一个单独的进程中运行.驱动程序的任务是执行测试脚本,并通过与运行在浏览器中的 bro…
1.Web自动化测试简介自动化基础:自动化用例编写.Selenium优势及原理.自动化环境搭建Selenium基础:常见8大元素定位(表格).常见元素处理.下拉框元素处理.不同窗口切换.元素进阶.元素等待需求到框架    需求分析-用例设计-基础脚本-登录/购物脚本重构-封装读取配置文件-数据驱动-监听截图-代码分层-框架实现-日志收集-报告生成-持续集成2.功能测试和自动化测试的区别    什么是功能测试:        满足需求找BUG    什么是自动化测试:        编写代码.脚本…
selenium http://selenium-python.readthedocs.io/index.html https://www.seleniumhq.org/projects/ide/ 声明浏览器对象,需要安装对应的浏览器驱动,记住要跟对应的浏览器版本相同,例如,chrome,安装chromedriver from selenium import webdriver browser = webdriver.Chrome() browser = webdriver.Firefox()…
在执行自动化测试用例过程中,发现因为网络慢或其他原因导致driver.get(url) 时,页面一直在加载,页面没有加载完成就不会去继续执行下面的动作,但是实际上需要操作的元素已经加载出来了. 解决方法 第一步:使用 set_script_timeout() 设置等待最大时间. 第二步:到了最大等待时间后页面如果仍然没有加载完成,执行js代码, driver.execute_script("window.stop()") 停止页面加载,执行下面的自动化测试步骤. 代码如下: drive…
运行脚本时间比较长时可以不打开浏览器测试,这样在测试运行时,电脑还是可以用作其他操作的. 只需要在运行脚本上加上下面代码的678行即可 1 # coding = utf-8 2 3 from selenium import webdriver 4 import time 5 6 option = webdriver.FirefoxOptions() 7 option.set_headless() 8 br = webdriver.Firefox(firefox_options=option) 9…
运行少量case时 1 # coding = utf-8 2 3 from selenium import webdriver 4 import unittest 5 import time 6 from HTMLTestRunner import HTMLTestRunner 7 8 class MyTest(unittest.TestCase): 9 '''百度搜索测试''' 10 11 def setUp(self): 12 self.driver = webdriver.Firefox(…
读取txt的内容并用百度查找搜索 1 # coding = utf-8 2 3 from selenium import webdriver 4 import time 5 6 # 打开浏览器 7 dr = webdriver.Firefox() 8 dr.get("http://www.baidu.com") 9 10 ''' 11 # 读取列表的 12 words = ['python', 'selenium', 'webdriver'] 13 14 for word in wor…
涉及方法 get_screenshot_as_file() 1 # coding = utf-8 2 3 from selenium import webdriver 4 from time import sleep 5 6 dr = webdriver.Firefox() 7 dr.get("http://www.baidu.com") 8 9 dr.find_element_by_id("kw").send_keys("selenium")…
涉及到的三个方法 set_window_size()  用于设置浏览器窗口的大小 e.gset_window_size(600,600) window.scrollTo() 用于设置浏览器窗口滚动条的水平和垂直位置window.scrollTo(300,120) 其中300左边距,120上边距 execute_script() 执行JavaScript代码来移动滚动条的位置 1 # coding = utf-8 2 3 from selenium import webdriver 4 from…
在火狐浏览器上传文件 上传前,同一个HTML文件在火狐和Edge浏览器显示有些不同 这是Firefox浏览器的显示 这是Edge浏览器 上传后 1 # coding = utf-8 2 3 from selenium import webdriver 4 import os 5 import time 6 7 dr = webdriver.Firefox() 8 file_path = "file:///" + os.path.abspath('upfile.html') 9 dr.g…
如下图所示,这种窗口是不能通过前端工具对其进行定位的,这里可以通过switch_to_alert()方法去接受这个弹窗 1 # coding = utf-8 2 3 from selenium import webdriver 4 from selenium.webdriver.common.action_chains import ActionChains 5 import time 6 7 dr = webdriver.Firefox() 8 dr.get("http://www.baidu…
1.多表单切换 下图为待测页面:内嵌百度首页 切换到百度首页进行操作 1 # coding = utf-8 2 3 from selenium import webdriver 4 import os 5 import time 6 7 dr = webdriver.Firefox() 8 file_path = 'file:///' + os.path.abspath('frame.html') 9 dr.get(file_path) 10 11 # 切换到iframe(id="if"…
这篇笔记主要是从Python官网的Tutorial上截取下来,再加上个人理解 1. 在交互模式下,下划线'_'还可以表示上一步的计算结果 2.引号转义问题. 从下图总结的规律是,字符串里的引号如果和引住字符串的引号是相同的,字符串里的引号需要转义.不同则不需要. 最后一个例子看似没变化,加上print()就不同了 加print()和不加print()的区别: Print() function produces a more readable output, by omitting the enc…