Python扩展模块——selenium的使用(定位、下载文件等)
想全面的使用selenium可以下载《selenium 2自动化测试实战-基于Python语言》PDF的电子书看看
我使用到了简单的浏览器操作,下载文件等功能。。。
推荐使用firefox,selenium对火狐的支持非常好,在写脚本的时候可以避开很多坑
from selenium import webdriver driver = webdriver.Firefox() # 创建一个实例
driver.get(weburl) #打开浏览器输入URL为weburl
driver.get_screenshot_as_file(“保存路径”)#浏览器窗口截图
#元素定位方法,这里简单说几个
driver.find_element_by_xpath() #xpath html绝对路径定位,其他方法定位不到时使用
driver.find_element_by_id() #通过ID定位
driver.find_element_by_class_name() #类名定位
在标签没有属性的情况下定位:
driver.find_element_by_xpath("//strong[text()='123123']")
#定位后可通过一下方法操作 #send_keys('向该元素发送本字符串') #click() #鼠标单击 #text #获取元素内容 例如; driver.find_element_by_id('name').send_keys('admin') #其他一些方法,很多,就不一一例举了 driver.implicitly_wait(5) # 设置最长等待时间 driver.refresh() #页面刷新
lr=driver.current_url #获取当前浏览器URL
下载文件的代码:
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList",2) #改为2,可设置文件保存目录
fp.set_preference("browser.download.manager.showWhenStarting",False) #False:不显示下载
fp.set_preference("browser.download.dir",r"C:\Program Files (x86)") #第二个参数是文件的保存路径
fp.set_preference("browser.helperApps.neverAsk.saveToDisk","application/x-msdownload") #第二个元素为下载文件的扩展名Content-type,此处为exe文件
dr = webdriver.Firefox(firefox_profile=fp) #更多扩展名Content-type可到http://tool.oschina.net/commons查看
dr.get(url)
time.sleep(4) #等待页面显示
dr.find_element_by_partial_link_text('点击下载').click()
time.sleep(2) #等待下载
dr.quit() #关闭浏览区驱动,退出浏览器
Python扩展模块——selenium的使用(定位、下载文件等)的更多相关文章
- [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)
转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...
- [python爬虫] Selenium常见元素定位方法和操作的学习介绍
这篇文章主要Selenium+Python自动测试或爬虫中的常见定位方法.鼠标操作.键盘操作介绍,希望该篇基础性文章对你有所帮助,如果有错误或不足之处,请海涵~同时CSDN总是屏蔽这篇文章,再加上最近 ...
- python3+selenium入门14-上传下载文件
上传文件一种方式是通过定位input标签,然后使用send_keys()方法传入需要上传文件的路径.另一种是使用第三方插件去上传文件.下面看下imput标签的方式.工具可以自己查下. <!DOC ...
- python webdriver api-右键另存下载文件
右键另存下载文件 先编辑SciTE脚本: ;ControlFocus("title","text",controlID) ;表示将焦点切换到标题为title窗体 ...
- python使用selenium,webdriver自动下载百度网盘内容
想实现一个自动下载微信公众号分享百度网盘图片链接的爬虫,使用selenium和火狐的webdriver进行完成 1.首先根据自己的浏览器下载相应的webdriver驱动器,python中导入selen ...
- 初级版python登录验证,上传下载文件加MD5文件校验
服务器端程序 import socket import json import struct import hashlib import os def md5_code(usr, pwd): ret ...
- python网络编程-socket上传下载文件(包括md5验证,大数据发送,粘包处理)
ftp server 1) 读取文件名 2)检查文件是否存在 3)打开文件 4)检查文件大小 5)发送文件大小给客户端 6)等客户端确认 7)开始边读边(md5计算)发数据 8)给客户端发md5 ft ...
- python网络爬虫之使用scrapy下载文件
前面介绍了ImagesPipeline用于下载图片,Scrapy还提供了FilesPipeline用与文件下载.和之前的ImagesPipeline一样,FilesPipeline使用时只需要通过it ...
- selenium webdriver 右键另存为下载文件(结合robot and autoIt)
首先感谢Lakshay Sharma 大神的指导 最近一直在研究selenium webdriver右键菜单,发现selenium webdriver 无法操作浏览器右键菜单,如图 如果我想右键另存为 ...
随机推荐
- webpack开发环境配置和生产环境配置
开发环境配置 在开发环境下,我们首先考虑的是方便开发,方便代码调试,不需要考虑代码合并和css样式分离这些. 这里主要说三个 :1.css模块化:2.模块热替换功能:3.source-map(代码映射 ...
- (python走过的坑)OpenCV中错误opencv-3.3.1\modules\highgui\src\window.cpp:339: error: (-215) size.width>0 && size.height>0 in function cv::imshow
第一次在python中使用OpenCV(cv2),运行时报错opencv-3.3.1\modules\highgui\src\window.cpp:339: error: (-215) size.wi ...
- C# Redis实战(三)
三.程序配置 在C# Redis实战(二)中我们安装好了Redis的系统服务,此时Redis服务已经运行. 现在我们需要让我们的程序能正确读取到Redis服务地址等一系列的配置信息,首先,需要在Web ...
- 如何用JAVA的IO流下载落网音乐?
一直以来都特别喜欢落网的音乐,最近用JAVA写了一个小程序,可以根据期刊和歌曲编号去下载音乐.本程序仅供学习使用. 目前只写了一个初步的代码: public class DownloadMusic { ...
- java基本语法特殊点
一.关系运算符 instanceof(类型比较运算符) example:a instanceof hello // hello是一个class ==与!=可以用于引用相等运算符( 二.数组 (数组是对 ...
- scala(二) Future执行逻辑解读
在scala中是没有原生线程的,其底层使用的是java的Thread机制.但是在scala中对java Thread进行了封装,实现了更便于操作线程的Future. 官方文档: Futures pro ...
- 兄弟连教育分享:用CSS实现鼠标悬停提示的方法
兄弟连教育分享:用CSS实现鼠标悬停提示的方法 本文,兄弟连HTML5培训,分享了纯CSS实现鼠标悬停提示的方法.给大家供大家参考.具体分析如下: 这是一款比较漂亮的鼠标悬停提示效果,用纯CSS代码实 ...
- 多进程浏览器、多线程页面渲染与js的单线程
线程与进程 说到单线程,就得从操作系统进程开始说起.在早期的操作系统中并没有线程的概念,进程是能拥有资源和独立运行的最小单位,也是程序执行的最小单位.任务调度采用的是时间片轮转的抢占式调度方式,而进程 ...
- 【Django】 rest-framework和RestfulAPI的设计
[rest-framework] 这是一个基于django才能发挥作用的组件,专门用于构造API的. 说到API,之前在其他项目中我也做过一些小API,不过那些都是玩票性质,结构十分简单而且要求的设计 ...
- C#内存泄漏--event内存泄漏
内存泄漏是指:当一块内存被分配后,被丢弃,没有任何实例指针指向这块内存, 并且这块内存不会被GC视为垃圾进行回收.这块内存会一直存在,直到程序退出.C#是托管型代码,其内存的分配和释放都是由CLR负责 ...