如何使用Selenium操纵浏览器打开网页

这是《快速掌握Python Selenium Web自动化》的第2篇

01

简单的使用Selenium

如果完成了上一篇的学习内容,安装好了Python下的Selenium模块,同时下载了合适的浏览器驱动程序,那么我们就可以在Python中使用Selenium了。

如果没有的,请回到第一篇文章学习:

快速掌握Python Selenium Web自动化:搭建Selenium环境

先来看这样一个例子:

# coding:utf-8'''
    @author:州的先生
    @site:zmister.com
    @微信公众号:州的先生
'''from selenium import webdriver

driver = webdriver.Chrome(executable_path=r"D:\chromedriver_win32\chromedriver.exe")
driver.get('http://www.baidu.com')
inputs = driver.find_element_by_id('kw')
inputs.clear()
inputs.send_keys("州的先生")
print(driver.title)

运行上述代码,我们的电脑会自动启动一个Chrome浏览器,并打开百度的首页,接在定位百度的输入框,在其中输入“州的先生”,最后在控制台上输入网页的标题:

02

第一个代码解释

在上面这个程序里面,我们首先从selenium中导入和webdriver子模块,webdriver提供了所有的浏览器驱动程序的实现调用方式:

from selenium import webdriver

在当前版本的selenium中,webdriver实现了绝大多数浏览器的接口:

接下来,我们实例化了一个Chrome浏览器的webdriver:

driver = webdriver.Chrome(executable_path=r"D:\chromedriver_win32\chromedriver.exe")

在Chrome()方法中,我们通过executable_path指定了之前下载好的chromedriver.exe的路径。

driver的get()方法将操纵浏览器打开一个指定的URL,这一步将等待页面完全加载完成:

driver.get("http://www.baidu.com")

在等待页面加载完成之后,我们使用find_element_by_id()方法通过元素的ID来定位和查找页面输入框元素。

在selenium中,webdriver提供了很多个方法来查找元素,其方法的名称都为find_element_by_ *:

inputs = driver.find_element_by_id('kw')

在通过输入框的id值定位到百度首页的输入搜索框之后,我们接着使用clear()方法来清除输入框中的内容(虽然输入框中并没有内容),然后使用send_keys()方法,将一个字符串发送到输入框中:

inputs.clear()inputs.send_keys("州的先生")

最后,我们将页面的标题打印了出来:

print(driver.title)

这样,我们就使用Selenium完成了一个简单的网页自动化操作。

03

总结

本篇,我们通过一个简单的示例——操纵Chrome浏览器打开百度首页,在输入框中输入搜索词,完成了Selenium的初步介绍。Selenium还有更多的用法,在接下来的篇幅中我们会一一介绍到。

下一篇,我们将会介绍在Selenium中进行元素定位。

原文发布于微信公众号 - 州的先生(zmister2016)

原文发表时间:2018-04-03

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏web

vue-router基本使用

1272
来自专栏cnblogs

Webpack+Vue如何导入Jquery和Jquery的第三方插件

创建一个jquery-vendor.js文件 import $ from 'jQuery'; console.log($); window.$ = $; win...

21810
来自专栏用户画像

H5无插件范式

过去,很多功能只能通过插件或者复杂的hack(本地绘图API、本地socket等)来实现,但是在HTML5中提供了对这些功能的原生支持。

572
来自专栏pangguoming

PowerDesigner设置表字段唯一约束

现有一个表student,id为主键。 ? 现打算给name添加一个唯一约束。 双击打开这个表,点击“keys"选项卡,显示有一个key_1,这是id主键。 ?...

3497
来自专栏大前端开发

使用mpvue开发小程序教程(三)

在上一篇文章中,我们熟悉了一下通过vue-cli生成的mpvue工程代码骨架的基本结构,大致了解了每一个部分的代码到底要放到何处。从本文起我们就开始涉及真正的编...

1683
来自专栏王磊的博客

EasyUI中那些不容易被发现的坑——EasyUI重复请求2次的问题

问题控件:datagrid、combobox、所有能设置url属性的控件 问题版本:1.4.4、1.4.5(之前的版本没测) 问题如图: ? 重复请求2次,错误...

3075
来自专栏GreenLeaves

JavaScript之将JS代码放在什么位置最合适

1.放到<head></head>标签里面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional/...

1957
来自专栏一枝花算不算浪漫

[小知识点]绝对路径与相对路径.

27311
来自专栏微信小程序开发

小程序中滚动条的使用,wx.pageScrollTo和&lt;scroll-view&gt;的对比

知晓程序员,专注微信小程序开发的程序员! 前言:近期小程序项目中用到了滚动条功能,官方文档中提供两种方式。即wx.pageScrollTo滚动到page页面的指...

5947
来自专栏vue学习

12、vue-awsome-swiper与轮播图组件

1、上篇我们为了便于展示,把头部my-header组件放在了App.vue页面,现在我们删掉App.vue里面的头部组件然后我们在view文件里面新建一个hom...

1403

扫码关注云+社区