pac代理(在CentOS8配置Python的selenium环境)

 2025-08-09 04:03:02  阅读 553  评论 0

摘要:1. 介绍1.1 介绍福哥要做一个自动化测试的脚本来对网站的功能进行了全面的测试,很多人一下会想到通过curl之类的方式去请求服务器页面,通过代码模拟浏览器?不就是发送 GET/POST 请求吗?一开始,福哥也是这样认为的,直到学习了python的selenium,才体会到“无界面浏览器操

1. 介绍

1.1 介绍

福哥要做一个自动化测试的脚本来对网站的功能进行了全面的测试,很多人一下会想到通过curl之类的方式去请求服务器页面,通过代码模拟浏览器?不就是发送 GET/POST 请求吗?

一开始,福哥也是这样认为的,直到学习了python的selenium,才体会到“无界面浏览器操作模拟”的神奇,今天就跟着福哥学习一下如何使用selenium去模拟用户操作浏览器吧!

前面福哥有整理CentOS7的教程,但是CentOS8现在已经成为了主流,最重要的是最新版本的google-chrome已经不支持CentOS7了(就在昨天,也就是2021/10/19,刚好是苹果新款Mac发布会。。。)!

2. 安装

2.1 安装Chrome

2.1.1 安装

直接输入命令。

yum-yinstallhttps://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

2.1.2 版本

使用下面的命令查看chrome的版本。

google-chrome--version

在CentOS8配置Python的selenium环境

2.2 安装ChromeDriver

2.2.1 版本

打开驱动下载页面,找到匹配的版本的驱动。我们只需要保证版本号前面的3段匹配即可,最后一段不用管他,也就是说“94.0.4606.81”匹配即可。会有很多匹配的项目,因为是Linux平台,所以我们只需要找到linux64版本就可以了。如果有多个linux64版本,找出版本号最后一段最大的那个即可。

http://chromedriver.storage.googleapis.com/

在CentOS8配置Python的selenium环境

...里面的资源URI复制导驱动网址后面就可以下载了。

http://chromedriver.storage.googleapis.com/95.0.4638.17/chromedriver_linux64.zip

2.2.2 安装

下载压缩包,然后解压缩,然后移动到 /usr/bin/ 目录,最后授权一下

wgethttp://chromedriver.storage.googleapis.com/95.0.4638.17/chromedriver_linux64.zip
unzipchromedriver_linux64.zip
mvchromedriver/usr/bin/
chmod+x/usr/bin/chromedriver

2.3 安装Selenium

通过pip安装,直接输入命令

pip3installselenium

在CentOS8配置Python的selenium环境

3. 使用

3.1 示例一

3.1.1 任务

打开百度首页输入关键字“site:tongfu.net”点击搜索按钮查看搜索结果是否匹配关键字“同福主页 - 首页 - 同福网 - TONGFU.net”

3.1.2 代码

通过selenium导入webdriver通过webdriver创建chrome实例通过chrome实例打开百度首页通过id选择到百度首页的输入框,填写关键字“site:tongfu.net”通过id选择到百度首页的提交按钮,提交查询等上3秒钟在页面源代码里查资关键字,如果百度工作正常,我们就可以匹配到查询结果

fromseleniumimportwebdriver
importtime
importre

#makeoptionsofChrome
opts=webdriver.ChromeOptions()
opts.add_argument("--headless")
opts.add_argument("--disable-gpu")
opts.add_argument("--no-sandbox")

#initChrome
chrome=webdriver.Chrome(options=opts)

#callbaidu.com
chrome.get("

#addkeywordandpresssubmit
input=chrome.find_element_by_id("kw")
input.send_keys("site:tongfu.net")
button=chrome.find_element_by_id("su")
button.click()

#waitamoment
time.sleep(3)

#checksourcecode
source=chrome.page_source
regexp=re.compile("同福主页-首页-同福网-TONGFU.net",re.M)
mats=regexp.search(source)
ifmats:
print(mats.group())
else:
print("missmatch")

#closeChrome
chrome.close()

在CentOS8配置Python的selenium环境

4. 元素定位

4.1 八种方式

以下八种元素定位方法可以灵活地拿到页面上的元素。

最后的execute_script方法,可以通过JS命令去拿页面上的元素。

福哥觉得一个execute_script+jquery等于一切了(前提是目标页面有加载jQuery框架)。

4.1.1 find_element_by_id

通过元素id定位

4.1.2 find_element_by_name

通过元素name定位

4.1.3 find_element_by_class_name

通过元素class定位

4.1.4 find_element_by_xpath

通过xpath定位,类似selector一种语法

4.1.5 find_element_by_css_selector

通过元素selector定位

4.1.6 find_element_by_tag_name

通过元素标签名称定位

4.1.7 find_element_by_link_text

通过a标签的label精确匹配

4.1.8 find_element_by_partial_link_text

通过a标签的label模糊匹配

4.1.9 execute_script

通过执行页面JS命令匹配

5. 选项介绍

ChromeOptions有很多选择,这里给大家介绍一下常用的选项。

5.1 常用选项

--user-data-dir="[PATH]"
#指定用户数据文件夹路径

--disk-cache-dir="[PATH]"
#指定缓存路径

--disk-cache-size=
#指定缓存大小,单位字节

--first-run
#第一次运行

--incognito
#隐身模式

--disable-javascript
#禁用Javascript

--omnibox-popup-count
#地址栏弹出的提示菜单数量

--user-agent=
#修改HTTP请求头部的Agent字符串

--disable-plugins
#禁止加载所有插件,可以增加速度

--disable-java
#禁用java

--start-maximized
#最大化方式启动浏览器

--no-sandbox
#取消沙盒模式

--single-process
#单进程运行

--process-per-tab
#每个标签使用单独进程

--process-per-site
#每个站点使用单独进程

--in-process-plugins
#插件不启用单独进程

--disable-popup-blocking
#禁用弹出拦截

--disable-plugins
#禁用插件

--disable-images
#禁用图像

--incognito
#启动进入隐身模式

--enable-udd-profiles
#启用账户切换菜单

--proxy-pac-url
#使用pac代理

--lang=zh-CN
#设置语言为简体中文

--disk-cache-dir
#自定义缓存目录

--disk-cache-size
#自定义缓存最大值,单位字节

--media-cache-size
#自定义多媒体缓存最大值,单位字节

--bookmark-menu
#在工具栏菜单

--enable-sync
#启用书签同步

--disable-gpu
#谷歌文档提到过

--hide-scrollbars
#隐藏滚动条

--headless
#浏览器不提供可视化页面

--no-sandbox
#以最高权限运行

window-size
#指定浏览器分辨率

blink-settings-imagesEnabled
#加载图片

6. 总结

使用selenium打开一个无界面的浏览器进程。

然后通过代码对这个浏览器进程进行操作,通过复杂的业务逻辑代码模拟用户操作。

最后通过获取页面元素的方式,或者通过查看页面源代码的方式进行结果判定。

通过这样几步操作就可以达到了网站自动化测试的目的了。

https://tongfu.net/home/35/blog/513557.html

版权声明:我们致力于保护作者版权,注重分享,被刊用文章【pac代理(在CentOS8配置Python的selenium环境)】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!;

原文链接:https://www.yxiso.com/zhishi/2033014.html

标签:pac代理

发表评论:

关于我们
院校搜的目标不仅是为用户提供数据和信息,更是成为每一位学子梦想实现的桥梁。我们相信,通过准确的信息与专业的指导,每一位学子都能找到属于自己的教育之路,迈向成功的未来。助力每一个梦想,实现更美好的未来!
联系方式
电话:
地址:广东省中山市
Email:beimuxi@protonmail.com

Copyright © 2022 院校搜 Inc. 保留所有权利。 Powered by BEIMUCMS 3.0.3

页面耗时0.0334秒, 内存占用1.93 MB, 访问数据库24次

陕ICP备14005772号-15