操作谷歌浏览器同样也需要下载相应的driver插件,官网下载.也可以从我的网盘下载,不过可能不是最新的,网盘地址.打开谷歌浏览器的操作和火狐的差不过. from selenium import webdriver dr = webdriver.Chrome() dr.maximize_window() dr.get('https://www.baidu.com') dr.close() webdriver.Chrome()初始化一个谷歌浏览器的实例,maximize浏览器最大化.get()打开相…
取元素的text,属性get_attribute,标签名tag_name 操作元素:send_keys输入,click点击,submit提交,clear清除输入 状态判断:is_display,is_enabled,is_selected   #coding=utf-8 #元素的操作 from selenium import webdriver import time driver = webdriver.Firefox() driver.get("https://cn.bing.com&quo…
WebDriver主要提供元素操作的方法,但也提供了一些关于浏览器操作的方法,比如设置浏览器大小,浏览器前进,后退,刷新等 设置浏览器大小 有时候需要设置浏览器大小,比如访问收集网页,设置浏览器大小跟手机一样大的尺寸,比如(480*800) from selenium import webdriver dr = webdriver.Chrome() dr.set_window_size(480,800) 浏览器最大化 from selenium import webdriver dr = web…
学习了元素定位之后,来看一些元素的操作,还有一些常用的方法 clear()清空输入框内容 click()点击 send_keys()键盘输入 import time from selenium import webdriver dr = webdriver.Chrome() dr.get('https://www.baidu.com')#打开百度 st = dr.find_element_by_name('wd')#定位搜索框 st.send_keys('测试一下')#输入内容 time.sle…
使用场景: 测试过程中有些元素隐藏在某些元素下面,需要鼠标悬停,才会看到 使用方法: # 定位元素hover_element = driver.find_element_by_css_selector('div.list-top-mld p')# 对该元素执行悬停操作ActionChains(driver).move_to_element(hover_element).perform()# 等待几秒看看效果time.sleep(3) 举例说明: # _._ coding:utf-8 _._ "&…
我们在对浏览界面做操作时,比如点击按钮,搜索框输入内容.都需要把鼠标挪过去,然后再点击,或者输入内容.在selenium操作时也是一样的.需要先对元素进行定位,然后才能进行操作.可以借助浏览器的开发者工具(浏览器F12打开)来查看网页对应的html代码.然后进行定位.可以稍微学习HTML基础,更容易理解. 定位方式有八种,这八种各有两个方法,一个是find_element_by_方式,这是定位单个元素的.一个是find_elements_by_方式,这是用来定位多个元素的. 使用name属性定位…
作为一个测试,在最近两年应该有明显的感觉.那就是工作变的难找,要求变的高了,自动化测试,性能测试等.没有自动化测试能力,只会点点点工作难找不说,工资也不高.所以还是要学习一些技术.首先要学习一门编程语言.然后自动化入门可以学习selenium.有java基础可以使用java.没有语言基础的推荐学习python3.网上的教程很多,推荐廖雪峰的python教程. selenium的学习更多是个入门,过渡的作用.感觉其实ui自动化很少用.而且能测试到的东西较少.之后可以继续去学习接口自动化相关的东西.…
有时候需要把一些浏览器当前窗口截图下来,比如操作抱错的时候.WebDriver类下.get_screenshot_as_file()方法可窗口截图,需要传入一个截图文件名的路径.window要用\\当做路径符 from selenium import webdriver import time dr = webdriver.Firefox() dr.get('https://www.baidu.com') dr.find_element_by_id('kw').send_keys('seleni…
有时有些功能需要通过js来执行,比如拖动浏览器的滚动条.通过execute_script()方法可以执行js的代码 window.scrollTo()可以传两个参数,第一个参数是下方滚动条的位置,第二个参数是右边滚动条的参数 from selenium import webdriver import time dr = webdriver.Firefox() dr.get('https://www.baidu.com') dr.set_window_size(600,600)#设置浏览器大小,让…
上传文件一种方式是通过定位input标签,然后使用send_keys()方法传入需要上传文件的路径.另一种是使用第三方插件去上传文件.下面看下imput标签的方式.工具可以自己查下. <!DOCTYPE html> <html> <head> </head> <body> <form action="demo_form.php"> <input type="file" name="…
可以把cookie理解为自己账户的身份证.因为http协议是无状态的,上一个请求和下一个请求没有关系.但是有时需要有关联.比如登录之后,才能进行操作这样的设置.这个就是cookie在起作用.登录成功时,服务器会给浏览器一个cookie,浏览器会解析存在本地.然后同一个网站,下一次请求时就会把这个cookie带上,告诉服务器是哪个用户在操作.在关闭浏览器时cookie有效期结束. WebDriver提供了一些用来操作cookie的方法: get_cookies():获得cookie所有信息,返回的…
在WebDriver中要处理JS生成的alert.confirm以及prompt,需要使用到switch_to_alert()定位到alert/confirm/prompt,然后再使用text.accept().dissmiss().send_keys()等方法进行操作. text:获得alert/confirm/prompt中的文本信息 accept():接受警告框 dissmiss():关闭警告框 send_keys():发送文本信息到警告框 from selenium import web…
当元素在ifarm或farm中时,需要先进入到表单中,然后才能定位元素进行操作.直接对元素定位.会提示元素无法找到. <!DOCTYPE html> <html> <head> </head> <body> <iframe id = 'if' src="https://www.baidu.com" width="800" height='300'> </iframe> </bo…
Keys类提供了键盘上几乎所有按键的方法.通过send_keys()方法不仅可以用来模拟键盘输入,还可以用它来模拟键盘上的按键.包括组合键,比如Ctrl+a等 需要导入Keys类 from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.keys import Keys from selenium import webdriver import time dr = webdriver.Chrome…
使用click()可以模拟鼠标的左键点击事件,现在的web页面中有很多其他的鼠标交互方式,比如鼠标右击.双击.悬停.鼠标拖放等功能.在WebDriver中,将这些关于鼠标操作的方法封装在ActionChains类. 导入ActionChains类 from selenium.webdriver.common.action_chains import ActionChains ActionChains类常用的方法: context_click():鼠标右键 double_click():鼠标双击…
在使用selenium进行操作时,有时候在定位元素时会报错.这可能是因为元素还没有来得及加载导致的.可以等过元素等待,等待元素出现.有强制等待,显式等待,隐式等待. 强制等待 就是之前文章中的time.sleep(),只是为了看到界面操作效果才那样设置的.这个是不管找没找到都会等待的.基本代码中不会用这个. 显式等待 WebDriverWait类是WebDriver提供的等待方法.在设置的时间内,会每隔一段时间去检查一次当前页面元素是否存在,如果超过设置时间还没有见到到就抛出异常.具体格式如下:…
使用selenium打开浏览器的时候,需要先去selenium官网下载一个对应浏览器的的driver插件.selenium下载.官网在国外可能打不开.或者可以从我网盘下载,但可能不是最新的网盘链接.将下载好的文件解压出来,将.exe文件放到python3的安装目录下即可. from selenium import webdriver dr = webdriver.Firefox() dr.get('https://www.baidu.com') dr.close() webdriver.Fire…
js2 = "window.scrollTo(0,0);" #括号中为坐标 当不知道需要的滚动的坐标大小时: weizhi2 = driver.find_element_by_id("goldLeaseApp_bClientID") #先定位到一个元素 driver.execute_script("arguments[0].scrollIntoView();", weizhi2) #让其滚动到这个坐标 arguments[0].scrollInt…
在打开新的浏览器窗口时,如果要定位新窗口的元素,需要先切换到这个新打开的窗口中,才能定位到该窗口下的元素. current_window_handle:获取当前句柄.可以把句柄理解成窗口的身份证 window_handles:获取所有打开窗口的句柄 from selenium import webdriver import time dr = webdriver.Chrome() dr.get('https://www.baidu.com') dr.maximize_window() win_h…
第三百五十一节,Python分布式爬虫打造搜索引擎Scrapy精讲—将selenium操作谷歌浏览器集成到scrapy中 1.爬虫文件 dispatcher.connect()信号分发器,第一个参数信号触发函数,第二个参数是触发信号,signals.spider_closed是爬虫结束信号 # -*- coding: utf-8 -*- import scrapy from scrapy.http import Request,FormRequest from selenium import w…
1.爬虫文件 dispatcher.connect()信号分发器,第一个参数信号触发函数,第二个参数是触发信号,signals.spider_closed是爬虫结束信号 # -*- coding: utf-8 -*- import scrapy from scrapy.http import Request,FormRequest from selenium import webdriver # 导入selenium模块来操作浏览器软件 from scrapy.xlib.pydispatch i…
CSS3 基础入门03 线性渐变 在css3当中,通过渐变属性实现之前只能通过图片实现的渐变效果.渐变分为线性渐变和径向渐变以及重复渐变三种.线性渐变的模式主要是颜色从一个方向过渡到另外一个方向,而径向渐变则是以一个点为基点(圆心),以点向四周进行渐变.渐变形状为一个圆,重复渐变则分为重复线性渐变和重复径向渐变,是对于前面两种渐变的一种重复模式. 语法: linear-gradient:point| angle color percentage point表示方向,angle表示角度. colo…
什么是自动化测试框架 自动化测试框架能够提供便利给用户高效完成一些事情,比如,结构清晰开发脚本,多种方式.平台执行脚本,良好的日志和报告去跟踪脚本执行结果. 关于自动化测试框架的定义有很多,在我大致理解下就是把能实现不同功能的软件组合在一起,实现特定的目的,这就是一个简单的自动化测试框架. 界面自动化测试框架核心是选择 一个用来编写脚本的语言,一个用来web界面的库,管理脚本的执行工具.这里选择python,web界面库用的selenium,脚本管理工具可以用unittest单元测试框架.测试报…
From: https://blog.csdn.net/u013258415/article/details/77750214 Selenium入门 欢迎阅读Selenium入门讲义,本讲义将会重点介绍Selenium的入门知识以及Selenium的前置知识. 自动化测试的基础 在Selenium的课程以前,我们先回顾一下软件测试的基本原理,为我们进一步完成Selenium自动化测试做好准备. 软件测试的发展 传统软件测试 G.J.Myers在其经典的著作<软件测试艺术>(The Art of…
Selenium入门 欢迎阅读Selenium入门讲义,本讲义将会重点介绍Selenium的入门知识以及Selenium的前置知识. 自动化测试的基础 在Selenium的课程以前,我们先回顾一下软件测试的基本原理,为我们进一步完成Selenium自动化测试做好准备. 软件测试的发展 G.J.Myers在其经典的著作<软件测试艺术>(The Art of Software Testing)一书中,给出了测试的定义: “程序测试是为了发现错误而执行的过程.” 这个概念产生于30年前,对软件测试的…
Python3 Selenium定位不到元素常见原因及解决办法 一.问题描述 在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况: 报错信息: no such element: Unable to locate element: {"method":"xpath","selector":"xpath"} 二.分析以及解决方案 1,原因一以及解决方案 (1)原因: Frame/Iframe原…
Python3 Selenium WebDriver网页的前进.后退.刷新.最大化.获取窗口位置.设置窗口大小.获取页面title.获取网页源码.获取Url等基本操作 通过selenium webdriver操作网页前进.后退.刷新.最大化.获取窗口位置.设置窗口大小.获取页面title.获取网页源码.获取Url等基本操作: from selenium import webdriver #打开浏览器 driver = webdriver.Ie(executable_path = "e:\\IED…
Python3.x:SQLAlchemy操作数据库 前言 SQLAlchemy是一个ORM框架(Object Rational Mapping,对象关系映射),它可以帮助我们更加优雅.更加高效的实现数据库操作,而且还不限于mysql. SQLAlchemy本身无法操作数据库,其必须以来pymsql等第三方插件,Dialect用于和数据API进行交流,根据配置文件的不同调用不同的数据库API,从而实现对数据库的操作,如: MySQL-Python mysql+mysqldb://<user>:&…
python3+selenium获取列表某一列的值 我们在坐自动化测试时,我们可能不想单纯的想验证一个选项卡,我们让脚本随机选择一个选项进行接下来的操作.例如我们想获取列表某一列的某一个数据(随机的)进行操作时,我们该怎么操作? 请看下面的列表,获取列表的所有运单号 html代码 我们可以选择xpath通过进行定位,当然这个方法只能定位到一个单号,但是我们要获取的是当前列表的所有单号. 我们复制下来的小path 的内容是                                     …
一.说明 在使用python3+selenium写自动升级程序的时侯,碰到一个弹出对话框需要点击确认的场景.弹出的对话框如下图所示. 对于弹框各种资料都说通过switch_to.alert属性获取对话框对象,然后使用该对象的accept()方法点击确认. 但使用该方法,一直报错:“selenium.common.exceptions.NoAlertPresentException: Message: No alert is active”,截图如下: 二.对话框处理 2.1 基本消息框处理 Ja…