一、安装selenium

  1. Pip install selenium==2.53.1    (稳定版)
  2. 下载火狐浏览器35.0.1  http://dl.pconline.com.cn/download/54846-1.html
  3. 添加组件:firepath(0.9.7.1.1),firebug(2.019)
  4. Forfox ide  https://addons.mozilla.org/zh-CN/firefox/addon/selenium-ide/
  1. Chorm   http://blog.csdn.net/huilan_same/article/details/51896672                                                       mac Chorm . https://www.applex.net/downloads/google-chrome-for-mac.25/history
  2. Firefox   http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/
  3. 谷歌浏览器驱动: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的元素定位

  1. 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()

  1. Name

el_input = driver.find_element_by_name('email')

  1. Class_name

el_input = driver.find_element_by_class_name('shark-pager-next')

  1. Tag_name(不建议)

el_input = driver.find_element_by_tag_name("input")

  1. Link text(针对a标签)

el_input = driver.find_element_by_link_text("房屋出租")
el_input.click()
driver.quit()

  1. Partial link text(针对a标签)

el_input = driver.find_element_by_partial_link_text("hao123")
el_input.click()
driver.quit()

  1. Xpath(鼠标右键-FireBug)

el_input = driver.find_element_by_xpath(".//*[@id='screening']/div[1]/h2/span[1]/a")

print(driver.get_attribute('title'))

  1. 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的更多相关文章

  1. 【转载】Selenim入门环境的搭建--Java环境下的Java Maven Project

    一.开发环境 操作系统: xp win7 win8 win10都可以 JDK: 1.6或者1.7 下载地址 JDK1.7下载 Eclipse: 官网下载比较新的版本,建议下载EE的版本  eclips ...

  2. selenim之ActionChains(一)

    大家好,来介绍下,今天要分享的是小编学ActionChains的经验. 先来说一下今天要用到的方法: click(element=null)                               ...

  3. selenim之ActionChains 用法

    常见的点击方法集锦: 参数: 1.driver是我们的浏览器 2.Actions是我们系统内置的执行鼠标一系列操作的对象 鼠标左击:Actions actions=new Actions(driver ...

  4. selenium2(WebDriver)环境搭建

    1.安装jdk并配置环境变量: jdk安装jdk下载地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html环境变量 ...

  5. Java爬虫工程师技能列表

    以下仅仅是自己一些粗浅认识.欢迎补充指正.欢迎进群交流! 掌握一半便能够熟练的开发爬虫玩了.自己正在努力中... 一.技能列表 1.掌握java.尤其编程网络部分:李刚的java基础至少看了三遍以上: ...

  6. selenium2 安装、简单使用及浏览器启动问题解决汇总

    一.selenium2 安装 1.安装jdk并配置环境变量 jdk需要1.6版本及以上的,这个从网上下载就可以,环境变量的配置前边的随笔整理过就不多说了. 2.安装Firefox,Selenium I ...

  7. selenium_python学习

    虫师selenium_python 学习:原文档 下载:http://download.csdn.net/detail/fnngj/6041329 具体参看selenium_python API : ...

  8. python爬虫利器Selenium使用详解

    简介: 用pyhon爬取动态页面时普通的urllib2无法实现,例如下面的京东首页,随着滚动条的下拉会加载新的内容,而urllib2就无法抓取这些内容,此时就需要今天的主角selenium. Sele ...

  9. 使用Selenium对新浪微博模拟登录

    Selenium的配置 在项目中引入Selenium库 下载chromedriver.exe 在项目代码中加入chromedriver位置的配置 使用Selenium Selenim语法 智能等待 隐 ...

随机推荐

  1. ClipboardJS实现点击复制功能

    <script src="//lib.baomitu.com/clipboard.js/1.7.1/clipboard.min.js"></script> ...

  2. Mybaitis-generator生成数据对象和时间的优化

    1.本章涉及到知识点,Mybaitis-generator生成数据对象和时间,xml的引用*.properties 外部文件(在这之前必须导入了mybaitis的核心架包) A.在pom.xml的案例 ...

  3. 判断n是否为质数

    #include <iostream> #include <vector> #include <stdio.h> using namespace std; int ...

  4. Spring中的容器

    1.Spring容器 Spring容器最基本的接口就是BeanFactory, 负责配置,创建和管理bean.我们通常不直接使用BeanFactory接口,而是使用其子接口ApplicationCon ...

  5. 【CodeForces 574B】Bear and Three Musketeers

    [链接] 我是链接,点我呀:) [题意] [题解] 枚举每一条边(x,y) 然后再枚举y的出度z 看看g[x][z]是否等于1(表示联通) 如果等于1就说明找到了一个三元环,则尝试用它们的出度和-6更 ...

  6. rabbitMQ学习笔记(六) topic类型消息。

    上一节中使用了消息路由,消费者可以选择性的接收消息. 但是这样还是不够灵活. 比如某个消费者要订阅娱乐新闻消息 . 包括新浪.网易.腾讯的娱乐新闻.那么消费者就需要绑定三次,分别绑定这三个网站的消息类 ...

  7. Scapy介绍官方文档翻译

    关于Scapy Scapy为何如此特别 高速的报文设计 一次探測多次解释 Scapy解码而不解释 高速展示Quick demo 合理的默认值 学习Python 本人英文水平有限,翻译不当之处,请參考官 ...

  8. 使用UE4公布安卓平台游戏

    使用了几天的UE4 ,总算是将游戏在安卓平台执行起来了.当中遇到非常多问题,而且终于依旧有一些问题没能解决. 整体感觉是UE4这款引擎眼下还不够成熟.问题较多. 没有unity使用起来方便. 可是既然 ...

  9. iOS开发实践之网络检測Reachability

    在网络应用开发中.有时须要对用户设备的网络状态进行实时监控.以至于对用户进行友好提示 或者依据不同网络状态处理不一样的逻辑(如视频播放app,依据当前的网络情况自己主动切换视频清晰度等等).用Reac ...

  10. linux中设置TAB键的宽度

    对于编程的人员来说,常常须要排版代码,这时候就须要TAB键,但TAB键的宽度太大,非常有可能代码太长,延伸到下一行,这个时候你就须要设置TAB键的宽度了. linux下设置TAB键的宽度,做法例如以下 ...