Python+Selenium笔记(一):环境配置+简单的例子

#环境配置基于windows操作系统

#学习selenium要有一些HTML和xpth的基础,完全不会的建议先花点时间学点基础(不然元素定位,特别是xpth可能看的有点懵)

#HTML :  http://www.runoob.com/html/     #xpth:  http://www.runoob.com/xpath

(一)  环境配置

(1)执行下面的命令(前提:已经安装python环境,可以参考之前发的python笔记(一))

pip install -U selenium

(2)http://docs.seleniumhq.org/download/   (网站打不开的话就FQ)

去下载Mozilla GeckoDriver(因为我暂时用火狐测试,所以下载这个),解压后放到任意目录下,然后在系统变量path中加上解压后的路径(我在2台电脑上试了下,一个放在任意目录,一个放到python的安装目录,反正都能用。)

(3)之后如果创建浏览器驱动实例还是报错的话(可能是浏览器版本的问题,我python3.6+selenium3.9+火狐47+Mozilla GeckoDriverV0.19.1就报错,火狐换成58就不会了)

(二)  简单的例子

#导入webdriver from selenium import webdriver #FirefoxBinary--导入2进制文件所在的位置 from selenium.webdriver.firefox.firefox_binary import FirefoxBinary #指定火狐浏览器的二进制路径 firefox = FirefoxBinary(r"C:\Program Files (x86)\Mozilla Firefox\firefox.exe") driver = webdriver.Firefox(firefox_binary=firefox) #创建火狐浏览器的驱动实例 driver.implicitly_wait(2) #设置等待时间(定义执行步骤的超时时间) driver.maximize_window()  #最大化浏览器

driver.get("https://www.cnblogs.com/") #打开博客园首页 search_field = driver.find_element_by_id('zzk_q') #通过id定位博客园首页的搜索框 search_btn =driver.find_element_by_class_name('search_btn') #通过class定位博客园首页的查询按钮 search_field.clear() #清空搜索框的值(如果有) search_field.send_keys("python") #在搜索框中输入查询条件 search_btn.click() #点击查询按钮 # search_field.submit() #选取<h3><a>开始 ,</a>结束之间的值,返回一个列表 products = driver.find_elements_by_xpath('//h3[a/@target="_blank"]/a') #迭代列表products,输出text的值 for p in products:     print(p.text) #选取<a target="_blank">节点的值,返回一个列表 pro = driver.find_elements_by_xpath('//h3/a[@target="_blank"]') #迭代输出href属性的值 for p in pro:     print(p.get_attribute('href')) #关闭浏览器 driver.quit()

(三)  输出如下

第二步骤中的xpth其实主要定位的就是下面这些

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Ryan Miao

如何启动一个本地静态服务器

背景 学习前端开发,想要调试静态页面以及js,发现直接本地打开会有跨域异常。因此,需要启动一个静态服务器,只负责当前目录的文件路由。 目前尝试了两种方式。一种是...

4625
来自专栏木头编程 - moTzxx

小程序图片长按识别功能的实现

1440
来自专栏向前进

vue-cli脚手架npm相关文件解读(6)build.js

系列文章传送门: 1、build/webpack.base.conf.js 2、build/webpack.prod.conf.js 3、build/webp...

4148
来自专栏Puppeteer学习

一步一步学Vue(八)

1442
来自专栏微信小开发

小程序无限加载

小程序无限加载 什么是无限加载呢? 比如 刷朋友圈的时候,一直往下拉一直都会有内容 就像没有尽头一样,可以不断的加载出东西来,也可以叫滚动加载。数据不可能在打开...

4645
来自专栏Jerry的SAP技术分享

webpack-dev-server启动后, localhost:8080返回index.html的原理

webpack-dev-server是一个采用Node.js Express实现的微型服务器, 内部使用webpack-dev-middleware来响应发送到...

1782
来自专栏阮一峰的网络日志

Babel 入门教程

(说明:本文选自我的新书《ES6 标准入门(第二版)》的第一章《ECMAScript 6简介》) Babel是一个广泛使用的转码器,可以将ES6代码转为ES5代...

2895
来自专栏老马寒门IT

05-移动端开发教程-CSS3兼容处理

CSS3的标准并没有全部定稿,目前CSS3的标准分成了不同的模块,具体的标准由各个模块推动标准和定稿,标准制定的过程中,浏览器也在不断的发新的版本来兼容新的标准...

37312
来自专栏守望轩

Visual Studio 2008 每日提示(二十一)

#201、在vs里运行外部工具 原文链接:You can run external tools within Visual Studio 操作步骤: 菜单:...

3685
来自专栏从零开始学自动化测试

python接口自动化12-案例分析(csrfToken)

前言: 有些网站的登录方式跟前面讲的博客园和token登录会不一样,把csrfToken放到cookie里,登录前后cookie是没有任何变化的,这种情况下如何...

3047

扫码关注云+社区

领取腾讯云代金券