抱歉,你查看的文章不存在

如何使用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

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

编辑于

州的先生

4 篇文章54 人订阅

相关文章

来自专栏pangguoming

PowerDesigner设置表字段唯一约束

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

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

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

31811
来自专栏liulun

在VSCode中编辑HTML文档时,在Dom标签上写style属性时智能提示的问题

首先在VSCode中打开一个HTML文件 然后点右下角的“选择语言模式” image.png 然后点击配置HTML语言的基础设置 image.png 然后在...

2278
来自专栏上善若水

013 mysql 忘记密码,修改密码

启动:sudo service mysql start 停止:sudo service mysql stop

1085
来自专栏deepcc

简单的滑动条

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

小程序中滚动条的使用,wx.pageScrollTo和<scroll-view>的对比

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

8217
来自专栏用户3030674的专栏

Android 全局使用第三方字体

    将文件放入工程assets目录下。(一般个人习惯单独命名一个文件夹放字体文件,也可直接放入根目录,但记得改引用路径)

3302
来自专栏hrscy

Unity 图标字体

这是一个关于在 unity 中从网络开发获取大量文件非常小的图标的简短提示。你所要做的就是打包所有你想在一种字体里使用的所有图标,那样你就可以这个图标作为文本保...

2042
来自专栏王磊的博客

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

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

3355
来自专栏GreenLeaves

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

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

2097

扫码关注云+社区

领取腾讯云代金券