selenim
一、安装selenium
- Pip install selenium==2.53.1 (稳定版)
- 下载火狐浏览器35.0.1 http://dl.pconline.com.cn/download/54846-1.html
- 添加组件:firepath(0.9.7.1.1),firebug(2.019)
- Forfox ide https://addons.mozilla.org/zh-CN/firefox/addon/selenium-ide/
- Chorm http://blog.csdn.net/huilan_same/article/details/51896672 mac Chorm . https://www.applex.net/downloads/google-chrome-for-mac.25/history
- Firefox http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/
- 谷歌浏览器驱动:http://npm.taobao.org/mirrors/chromedriver/
二、Selenium的简单操作
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('https://www.baidu.com')
print(driver.current_url)
print(driver.title)
# 页面最大化
driver.maximize_window()
# 页面大小的获取和设置
print(driver.get_window_size())
driver.set_window_size(400,400)
# 页面位置
print(driver.get_window_position())
driver.set_window_position(100,100)
url_zhihu = 'http://zhuanlan.zhihu.com'
driver.get(url_zhihu)
# 回退
driver.back()
# 前进
driver.forward()
driver.close()
三、Selenium的元素定位
- Id
el_input = driver.find_element_by_id('kw')
el_input.send_keys('selenium')
el_click = driver.find_element_by_id('su')
el_click.click()
- Name
el_input = driver.find_element_by_name('email')
- Class_name
el_input = driver.find_element_by_class_name('shark-pager-next')
- Tag_name(不建议)
el_input = driver.find_element_by_tag_name("input")
- Link text(针对a标签)
el_input = driver.find_element_by_link_text("房屋出租")
el_input.click()
driver.quit()
- Partial link text(针对a标签)
el_input = driver.find_element_by_partial_link_text("hao123")
el_input.click()
driver.quit()
- Xpath(鼠标右键-FireBug)
el_input = driver.find_element_by_xpath(".//*[@id='screening']/div[1]/h2/span[1]/a")
print(driver.get_attribute('title'))
- Css selector(鼠标右键-复制唯一选择器)
el_input = driver.find_element_by_css_selector(".inner-con2 > a:nth-child(2) > img:nth-child(1)")
el_input.click()
driver.quit()
四、selenium方法总结
B=webdriver.Firefox()
B.get(‘http://baidu.com’)
B.title
B.current_url
Clear
Send_keys
Click
Submit
Back
Size
Id
五、selenium鼠标事件
Context_click 右击事件
double_click 双击事件
Drag_and_drop 拖动
Move_to_element() 鼠标停在一个元素上
Click_and_hold 按下鼠标左键在一个元素上
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import time
b = webdriver.Firefox()
b.get('https://www.jikexueyuan.com/')
position = b.find_element_by_css_selector('.aside-cList > li:nth-child(1)')
ActionChains(b).move_to_element(position).perform()
dian = b.find_element_by_partial_link_text('React Native')
dian.click()
time.sleep(3)
b.quit()
六、Selenium键盘事件
send_keys(Keys.BACKSPACE) 退格键
send_keys(Keys.CONTROL,’a’) 全选
send_keys(Keys.CONTROL,’v’) 粘贴
send_keys(Keys.CONTROL,’c’) 复制
send_keys(Keys.CONTROL,’x’) 剪切
send_keys(Keys.ENTER) 回车
>>> from selenium import webdriver
>>> from selenium.webdriver.common.keys import Keys
>>> b.get('https://www.jikexueyuan.com/')
>>> data = b.find_element_by_id('searchinput')
>>> data.send_keys('python')
>>> data.send_keys('python1')
>>> data.send_keys(Keys.BACKSPACE)
七、Selenium多窗口切换
b.window_handles 显示所有句柄(列表)
b.current_window.handles显示当前句柄
b.switch_to_window(b.window_handles[0])切换句柄
b.current_url 当前地址
b.close() 关闭当前
b.quit() 关闭所有
八、Selenium alert
switch_to_alert() 返回alert对象
accept() 确认
dismiss() 取消
send_keys() 有输入框才能使用,否则报错
>>> obj=b.switch_to_alert()
>>> obj.accept()
九、Selenium excel
Import xlrd
Xl =xlrd.open_workbook(‘test.xls’) #打开excel
Table = xl.sheets()[0] #通过索引获取工作表
Row = table.row_values(0) #获取第一行内容
Table.nrows #行数
Table.ncols #列数
Table.cell(0,0).value 单元格
Import xlswriter
Xl =xlswriter.workbook(‘test.xls’) #创建excel
Table=xl.add_worksheet(‘sheet1’) #添加sheet
Table.write_string(0,0,’data’) / Table.write_string(‘A1’,’data’) #写
Table.set_column(‘C:E’,15) #设置单元格大小
Xl.close() #关闭
selenim的更多相关文章
- 【转载】Selenim入门环境的搭建--Java环境下的Java Maven Project
一.开发环境 操作系统: xp win7 win8 win10都可以 JDK: 1.6或者1.7 下载地址 JDK1.7下载 Eclipse: 官网下载比较新的版本,建议下载EE的版本 eclips ...
- selenim之ActionChains(一)
大家好,来介绍下,今天要分享的是小编学ActionChains的经验. 先来说一下今天要用到的方法: click(element=null) ...
- selenim之ActionChains 用法
常见的点击方法集锦: 参数: 1.driver是我们的浏览器 2.Actions是我们系统内置的执行鼠标一系列操作的对象 鼠标左击:Actions actions=new Actions(driver ...
- selenium2(WebDriver)环境搭建
1.安装jdk并配置环境变量: jdk安装jdk下载地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html环境变量 ...
- Java爬虫工程师技能列表
以下仅仅是自己一些粗浅认识.欢迎补充指正.欢迎进群交流! 掌握一半便能够熟练的开发爬虫玩了.自己正在努力中... 一.技能列表 1.掌握java.尤其编程网络部分:李刚的java基础至少看了三遍以上: ...
- selenium2 安装、简单使用及浏览器启动问题解决汇总
一.selenium2 安装 1.安装jdk并配置环境变量 jdk需要1.6版本及以上的,这个从网上下载就可以,环境变量的配置前边的随笔整理过就不多说了. 2.安装Firefox,Selenium I ...
- selenium_python学习
虫师selenium_python 学习:原文档 下载:http://download.csdn.net/detail/fnngj/6041329 具体参看selenium_python API : ...
- python爬虫利器Selenium使用详解
简介: 用pyhon爬取动态页面时普通的urllib2无法实现,例如下面的京东首页,随着滚动条的下拉会加载新的内容,而urllib2就无法抓取这些内容,此时就需要今天的主角selenium. Sele ...
- 使用Selenium对新浪微博模拟登录
Selenium的配置 在项目中引入Selenium库 下载chromedriver.exe 在项目代码中加入chromedriver位置的配置 使用Selenium Selenim语法 智能等待 隐 ...
随机推荐
- 小白学习Spark系列四:RDD踩坑总结(scala+spark2.1 sql常用方法)
初次尝试用 Spark+scala 完成项目的重构,由于两者之前都没接触过,所以边学边用的过程大多艰难.首先面临的是如何快速上手,然后是代码调优.性能调优.本章主要记录自己在项目中遇到的问题以及解决方 ...
- Linux进程间通信--进程,信号,管道,消息队列,信号量,共享内存
Linux进程间通信--进程,信号,管道,消息队列,信号量,共享内存 参考:<linux编程从入门到精通>,<Linux C程序设计大全>,<unix环境高级编程> ...
- 出现$ref的原因及解决方案
$ref的产生原因 (1)重复引用:一个集合/对象中的多个元素/属性都引用了同一个对象 (2)循环引用:集合/对象中的多个元素/属性在相互引用导致循环 针对fastjson的处理 fastjson作为 ...
- 00065字符串缓冲区_StringBuilder类
1.StringBuilder类,它也是字符串缓冲区,StringBuilder与它和StringBuffer的有什么不同呢? 它一个可变的字符序列.此类提供一个与 StringBuffer 兼容的 ...
- Java基础学习总结(61)——Java项目开发要注意的60个问题
1. 首先写代码的时候最好不要有缺陷.最好的修复方法就是让 bug 胎死腹中. 良好的单元测试 强制数据库约束 使用输入验证框架 避免未实现的"else"条件 在应用到主程序之前知 ...
- Hdu oj 1017 A Mathematical Curiosity
题目:pid=1017">点击打开链接 #include<stdio.h> int main() { int t; scanf("%d",&t) ...
- VMWare虚拟机下为Ubuntu 12.04.1网络设置(NAT方式)
NAT方式: 虚拟机能够上外网,能够訪问宿主计算机所在网络的其它计算机(反之不行). 第一步:设置虚拟机vmware网络參数 (1)打开虚拟机,选择菜单"编辑">" ...
- exFAT格式
买了一个64GB的T卡,发如今Windows XP上格式化."文件系统"仅仅有exFAT选项. 用这个exFAT格式化还失败了. 给XP打上KB955704补丁,能够用exFAT格 ...
- intel dpdk在ubuntu12.04中測试testpmd、helloworld程序
一.測试环境 操作系统:ubuntu12.04 x86_64 dpdk版本号:1.6.0r2 虚拟机:vmware 10 网卡: Intel Corporation 82545EM Gigabit ...
- Class example in C/C++
class Player { private: int health; //these are the attributes int strength; int agility; pu ...