文档章节

小白记录:2、python 用Selenium 模块 模拟启动chrome 浏览器设置

苏灿
 苏灿
发布于 2017/08/29 21:52
字数 1123
阅读 93
收藏 0
点赞 0
评论 0

安装及环境调试

注:py2

1、下载安装chrome浏览器,安装在任意文件夹

2、下载chromedrive,放到chrome.exe 文件夹下。举例:我的chrome安装在

将chromedriver放在该文件夹下即可。

注:chromedriver版本与chrome浏览器版本对应关系:

chromedriver版本 支持的Chrome版本
v2.31 v58-60
v2.30 v58-60
v2.29 v56-58
v2.28 v55-57
v2.27 v54-56
v2.26 v53-55
v2.25 v53-55
v2.24 v52-54
v2.23 v51-53
v2.22 v49-52
v2.21 v46-50
v2.20 v43-48
v2.19 v43-47
v2.18 v43-46
v2.17 v42-43
v2.13 v42-45
v2.15 v40-43
v2.14 v39-42
v2.13 v38-41
v2.12 v36-40
v2.11 v36-40
v2.10 v33-36
v2.9 v31-34
v2.8 v30-33
v2.7 v30-33
v2.6 v29-32
v2.5 v29-32
v2.4 v29-32

 

chromedriver下载地址

配置环境变量

C:\Program Files (x86)\Google\Chrome\Application

将文件地址加入环境变量

python中测试

from selenium import webdriver

browser = webdriver.Chrome()
browser.get(r"http://www.baidu.com/")

这时候就可以看到chrome浏览器打开了百度主页

常用函数

新建实例driver = webdriver.Chrome()
1.通过标签属性Id查找元素
方法:find_element_by_id(element_id)
实例:driver.find_element_by_id("iptUsername")
2.通过标签属性name查找元素
方法:find_element_by_name(element_name)
实例:driver.find_element_by_id("inputPwname")
3.通过标签Xpath路径查找元素
方法:find_element_by_xpath(xpath)
实例:driver.find_element_by_xpath("//div[@id='menuContainer']/div/div/ul/li[4]/a")
4.通过标签名tagname查找元素
方法:find_element_by_tag_name(tag_name)
实例:driver.find_element_by_tag_name("input")
注意:通过tag_name查找时使用find_element_by_tag_name查找到的是第一个标签的tag_name
5.通过标签中的元素文本链接查找元素
方法:find_element_by_link_text(link_text)
实例:driver.find_element_by_link_text('登  录')
6.通过标签的class属性查找元素
方法:find_elements_by_class_name(class_name)
实例:driver.find_elements_by_class_name("x-panel-body")
7.通过css样式查找元素
方法:find_element_by_css_selector()
实例:driver.find_element_by_css_selector("input.btn") 温馨提示:find_elements_by_id()查询到的是一个集合,如果id名字重复的时候可以采取find_elements_by_id(),其他的查询方式同理;
8.浏览器中加载url
方法:get(url)
实例:driver.get("http//:www.baidu.com")
9.向前
方法:forward()
实例:driver.forward()
10.返回当前会话中的cookies
方法:get_cookies()
实例:driver.get_cookies()
11.根据cookie name 查找
方法:driver.get_cookie(cookie_name)
实例:driver.get_cookie("NET_SessionId")
12.截取当前页面
方法:
get_screenshot_as_file(filename)
实例:driver.
get_screenshot_as_file("D:\\Program Files\\Python27\\NM.bmp")
13.获取当前窗口的坐标
方法:get_window_position()
实例:driver.get_window_position()
14.获取当前窗口的长和宽
方法:get_window_size()
实例:driver.get_window_size()

举例1:打开百度图片搜索美女

#coding=utf-8
from selenium import webdriver

driver = webdriver.Chrome()
driver.get(r"https://image.baidu.com/")

driver.find_element_by_name("word").send_keys(u"美女")
driver.find_element_by_class_name("s_btn").click()

举例2:打开百度搜索美女

#coding=utf-8
from selenium import webdriver

driver = webdriver.Chrome()
driver.get(r"https://www.baidu.com/")

driver.find_element_by_id("kw").send_keys(u"美女")
driver.find_element_by_id("su").click()

尝试登陆163邮箱

#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome()
driver.get(r"http://mail.163.com/")
time.sleep(5)
#等待加载
driver.switch_to_frame("x-URS-iframe")
#跳转到框架,定位frame的id或者name属性
name = driver.find_element_by_name("email")
name.send_keys(u"你的账号")
password = driver.find_element_by_name("password")
password.send_keys(u"你的密码")
password.send_keys(Keys.RETURN)

需要跳转到页面是因为frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位。

还是以163邮箱为例

我们可以发现 账号与密码的输入栏均在框架之下

我们复制上面的链接,在浏览器里访问,可以发现就是我们需要的登陆界面

所以我们需要在加载初始页面后在访问框架,然后在定位框架内的账号密码输入框。这样才能完成自动登陆。

如何切入框架

switch_to_frame("name/id")
#或
switch_to.frame("name/id")
#若无name或id属性
switch_to.frame(driver.find_element_by_class_name("iframe"))
# 括号内可以是任意方法xpath等

切回主页面

driver.switch_to.default_content()

切入框架内框架

driver.switch_to.frame("frame1")
driver.switch_to.frame("frame2")

从frame2 切回frame1

driver.switch_to.parent_frame()  

弹窗锁定

driver.current_window_handle

163自动登陆加发送邮件

#coding=utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome()
driver.get(r"http://mail.163.com/")
time.sleep(2)
#等待加载
driver.switch_to.frame("x-URS-iframe")
#跳转到框架,定位frame的id或者name属性
name = driver.find_element_by_name("email")
name.send_keys("邮箱账号")
#定位输入框并写入邮箱账号
password = driver.find_element_by_name("password")
password.send_keys("你的密码")
#定位输入框并写入密码
password.send_keys(Keys.RETURN)
#回车登陆
time.sleep(2)
#等待加载
write = driver.find_element_by_id("_mail_component_68_68")
write.click()
#点击写信
time.sleep(2)
#等待加载
driver.find_element_by_class_name("nui-editableAddr-ipt").send_keys("目标邮箱")
#输入发送邮箱地址
driver.switch_to.frame(driver.find_element_by_class_name("APP-editor-iframe"))
#进入邮件书写框架
driver.find_element_by_class_name("nui-scroll").send_keys("test")
#填写内容
driver.switch_to.default_content()
#跳回主界面
driver.find_element_by_class_name("nui-toolbar-item").click()
#点击发送
driver.current_window_handle
#捕捉弹窗
driver.find_element_by_class_name("nui-msgbox-ft-btns").find_element_by_css_selector('div.js-component-button.nui-mainBtn.nui-btn').click()
#确定发送

 

© 著作权归作者所有

共有 人打赏支持
苏灿
粉丝 0
博文 5
码字总数 2528
作品 0
Python + Selenium + Firefox 使用代理 auth 的用户名密码授权

米扑代理,全球领导的代理品牌,专注代理行业近十年,提供开放、私密、独享代理,并可免费试用 米扑代理官网:https://proxy.mimvp.com 本文示例,是结合米扑代理的私密、独享、开放代理,专...

sunboy2050
07/15
0
0
分享一个神器,Selenium 自动化测试工具

最近写项目的时候,用到了Selenium,一个 Web 端的自动化测试工具,直接运行在浏览器中,用来模拟用户操作。 Selenium 不仅仅可以用作自动化测试,还有很多种玩法,比如 Python 的爬虫,实现...

angkee
05/31
0
0
用自动化测试工具selenium来揭露骗局的真相

前几天写了用爬虫来揭露约稿骗局的真相,但实际上对于动态加载的数据来说,用程序爬取比较困难,在这种情况下,可以使用selenium来模拟浏览器行为,达到同样目的。 安装好python之后,利用p...

大神带我来搬砖
07/09
0
0
Python + Selenium + Chrome 使用代理 auth 的用户名密码授权

米扑代理,全球领导的代理品牌,专注代理行业近十年,提供开放、私密、独享代理,并可免费试用 米扑代理官网:https://proxy.mimvp.com 本文示例,是结合米扑代理的私密、独享、开放代理,专...

sunboy2050
前天
0
0
下载 chromedriver与chrome版本映射表

1、根据CHROME版本下载相对应的chromedriver驱动器,selenium自动化才可以启动浏览器 selenium之 chromedriver与chrome版本映射表(更新至v2.33) 原创 2016年07月13日 11:40:54 标签: driv...

颜丽
2017/10/31
0
0
Python 用于网站抓取 登录 发布的模块介绍

由于目前的Web开发中AJAX、Javascript、CSS的大量使用,一些网站上的重要数据是由Ajax或Javascript动态生成的,并不能直接通过解析html页面内容就能获得(例如采用mechanize、lxml、Beautif...

shaohan
2014/03/20
0
0
Python selenium实现微博自动登录

(一)编程环境 操作系统:Win 10 编程语言:Python 3.6 (二)安装selenium 这里使用selenium实现。 如果没有安装过python的selenium库,则安装命令如下 (三)下载ChromeDriver 因为selen...

海天一树X
05/15
0
0
python 安装selenium环境

1.先自行安装python环境(包括下载python安装包、配置环境变量、eclipse配置pydev环境) 2.下载py stuptools工具包--url: https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0...

郝云鹏
2014/03/02
0
0
[2B][尝鲜] selenium webdriver

STEP0: 搭环境最头疼的还是各工具,软件版本的兼容性问题。暂不罗列遇到的问题了,直接把自己的工具版本贴出来: IEDriverServerWin322.38.0.zip 解压到可以运行 cmd的任何目录 Firefox 24.0...

彼得
2014/04/18
0
0
Python + Selenium 登录QQ邮箱

Python + Selenium 自动化登录QQ邮箱 准备工作 Windows或则Linux 安装Python 安装Selenium 安装Chrome Driver 环境选择Windows 10 安装Python Windows下安装 python 3.7.0 (因为python 2和p...

迷你芊宝宝
07/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

毕业5年,我是怎么成为年薪30W的运维工程师

#转载# 我在大学读的是计算机专业,但大学毕业之后,进入到一家私企进行工作,工作的内容类似于网管,会经常的去修电脑,去做水晶头等内容。刚开始工作,也没想太多,最想的是丰富自己的工作...

Py爱好
5分钟前
0
0
大数据基础知识,大数据学习,涉及的知识点

一、什么是大数据 一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流 转、多样的数据类型和价值密度低四大特征。...

董黎明
20分钟前
0
0
Linux CentOS 7上安装极点五笔

话说几天前在新买的惠普笔记本上成功地安装了Linux CentOS 7操作系统、Nvidia Quandro P600驱动程序及X Window,并在VMware下安装Red Hat教学环境,彻底跳出Windows的苦海,但仍然有一件事不...

大别阿郎
32分钟前
7
0
2018年7月20日集群课程

一、集群介绍 集群,简单地说是指一组(若干个)相互独立的计算机,利用高速通信网络组成一个较大的计算机服务系统,每个集群节点(即集群中的每台计算机)都是运行各自服务的独立服务器。 ...

人在艹木中
35分钟前
0
0
spark开发机中调试snappy

目的 在Idea中的点击运行,使spark可以直接读取snappy 自己编译hadoop,以支持snappy的压缩。 自己编译的目的就是要得到支持snappy文件读写的动态链接库。如果可以在网上下载,可以跳过自行编...

benny周
52分钟前
0
0
centos7 安装docker

1,查看系统版本 cat /etc/redhat-release 2,安装gcc yum -y install gccyum -y install gcc-c++ 3,卸载旧版本 yum remove docker \ docker-client \ ......

暗中观察
53分钟前
0
0
rabbitmq学习记录(七)交换机Exchange-topic

实现功能:一条消息发送给多个消费者 交换机模式:topic 相比于direct匹配模式,匹配routingKey时,topic模式下不仅支持完全匹配,还支持两种特殊的匹配方式 #:可以匹配一个或多个字符 *:可...

人觉非常君
53分钟前
0
0
[译]为什么(要使用)GNU Affero GPL?

#为什么(要使用)GNU Affero GPL? 作者信息:Copyright © 2010, 2013, 2014, 2015 Free Software Foundation, Inc. This page is licensed under a Creative Commons Attribution-NoDeriv......

ICE冰焰火灵X
54分钟前
0
0
apollox-lua 示例

这个项目是从openn2o里迁出的项目。 示例地址 apollox-lua.js 是把js翻译成lua的库。支持两种不同的模态, 在编译工程的时候使用 可以用作openresty的代码翻译, 即用js代替lua。在web模式可...

钟元OSS
今天
0
0
Ubuntu系统笔记 Linux系统

Ubuntu 16.04.3 Ubuntu系统,不适用yum, yum软件源都是RPM软件包,不是deb格式软件包,所以你即便是在Ubuntu上面安装了yum,也是完全用不了的。 不推荐 apt好于yum apt install screen...

阿锋zxf
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部