技术 | web自动化入门

Selenium的简介

Selenium可以使浏览器进行自动化操作。你用这个工具做什么完全取决于你自己。主要是为了测试目的自动化Web应用程序,但肯定不仅限于此。

Selenium得到了一些最大的浏览器供应商的支持,这些供应商已经有的也使Selenium成为他们浏览器的一部分。它也是无数其他浏览器自动化工具、API和框架中的核心技术。

· 官网地址:https://www.seleniumhq.org/

2

Selenium结合Python的使用

|  Selenium的安装

直接通过pip命令即可安装Selenium相关的API。

pip3 install selenium

| Selenium调用浏览器

·  项目准备:

1. 新建一个python项目,叫做web自动化

2. 新建一个python文件,叫做demo.py

3. 导入selenium模块中的webdriver

4. 通过webdriver获取chrome的driver对象

·  代码如下:

from selenium import webdriver

driver = webdriver.Chrome()

·  运行结果:

运行后,会自动打开一个chrome的程序,如果没有打开并且报错了也不要慌。马上就说。

| 缺少chromedriver的问题

如果上面的代码,并没有打开网站,而是报错了。提示信息为缺少chromedriver,会给你一个网站,点击去。

这个网站在国内打不开,我来给大家放几张截图。

chromedriver是需要下载的。其实这个网站也已经说得很清楚了,chrome是72的版本,对应的是chromedriver是2.46的版本。换句话说,你自己想要做自动化的chrome是什么版本,就需要下载对应版本的chromedriver。

如何查看自己chrome的版本呢?

直接在chrome浏览器中输入 chrome://settings/help 即可查看,如图所示。

大家可以看到,我这里是71的版本。那么71应该下载什么版本的chrome呢?

百度搜一下 ”chromedriver 对应版本“,其实有很多相关的资料,我这里给大家放个截图:

引用:https://blog.csdn.net/yoyocat915/article/details/80580066

我们发现 71 的chrome需要使用 2.43/2.44/2.45/2.46 都可以,至于用哪个,看心情吧,都可以,就算不可以,换一个就行了。

淘宝为我们贴心的准备的镜像地址进行下载。http://npm.taobao.org/mirrors/chromedriver/

我这里下载的2.46的版本,再选择对应的平台,解压后会得到一个叫做chromedriver的文件。

接下来,将这个文件放到一个不太经常移动且最好不要有中文的目录下,并将这个目录配置到环境变量中。

下图是mac的配置方法,大家可以自行查找配置环境变量的方法,这里就不在赘述了。

此时,就完美结果这个问题啦,想火狐之类的可能也会出这种问题,解决思路其实是一样的,火狐的浏览器叫做geckodriver而已。

| 打开要测试的网站

环境都搭建好了,接下在需要打开对应的网站即可。比如百度。

from selenium import webdriver

driver = webdriver.Chrome()

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

使用driver对象中的get方法即可,务必记得加上协议头http。

3

Selenium基本语法

接下来我们做一个简单的小案例,在百度中输入10086,并且点击百度一下。查看浏览器的结果。

| 输入

想要对百度输入10086这个关键字,要先定位到对应的输入框,我们右键对着输入框查看其id。

可以看到,输入框的id为kw,我们通过driver的findelementbyid的方法,进行定位。然后通过这个元素的sendkeys进行输入文字,右键运行即可。

from selenium import webdriver

driver = webdriver.Chrome()

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

kw = driver.find_element_by_id("kw")

kw.send_keys("10086")

| 点击

我们使用同样的方法查看 百度一下 按钮的id

再使用元素的click方法进行点击即可。为了更好的看到效果,我们在中间加了一个time.sleep

import time

from selenium import webdriver

driver = webdriver.Chrome()

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

kw = driver.find_element_by_id("kw")

kw.send_keys("10086")

time.sleep(3)

driver.find_element_by_id("su").click()

4

总结

其实所谓自动化,就是让电脑模拟人的操作而已,人按什么顺序操作,电脑也应该按什么顺序操作。人先输入关键字,再点击百度一下,电脑也是一样的。

自动化更多的是人如何做。我们又如何定位到这个元素,然后进行对应的操作。

猜你喜欢

转载自blog.csdn.net/qq_39581763/article/details/88989737