6、 获取断言信息

7、 等待页面加载完成

7.1 显示等待

7.2 隐式等待

8、 页面切换

9、 框处理

9.1 警告框处理

9.2 下拉框选择

9.2.1 Select类的方法

9.2.1.1 选中方法

9.2.1.2 取消选择方法

9.2.2 先定位select 然后在定位option

9.2.3 直接通过xpath层级标签定位

10、 文件上传

11、 cookie操作

11.1 cookie 登录方法

12、 调用JS代码

13、 窗口截图

13.1 截取验证码图片案例

14、 关闭浏览器


selenium 基础语法

=============

一、 环境配置

=======

1、 安装环境

=======

安装 selenium 第三方库

pip install selenium

下载浏览器驱动:

  • Firefox浏览器驱动: geckodriver

  • Chrome浏览器驱动: chromedriver , taobao备用地址

  • IE浏览器驱动: IEDriverServer

  • Edge浏览器驱动: MicrosoftWebDriver

  • Opera浏览器驱动: operadriver

  • PhantomJS浏览器驱动: phantomjs

需要把这些浏览器驱动放入 Python 应用目录里面的 Script 文件夹里面

干货主要有:

======

① 200 多本 Python 电子书(和经典的书籍)应该有

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且可靠的练手项目及源码)

④ Python基础入门、爬虫、网络开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

Python学习交流Q群101677771

2、 配置参数

=======

每次当selenium启动chrome浏览器的时候,chrome浏览器很干净,没有插件、没有收藏、没有历史记录,这是因为selenium在启动chrome时为了保证最快的运行效率,启动了一个裸浏览器,这就是为什么需要配置参数的原因,但是有些时候我们需要的不仅是一个裸浏览器

selenium启动配置参数接收是ChromeOptions类,创建方式如下 :

from selenium import webdriver

option = webdriver.ChromeOptions()

driver = webdriver.Chrome(chrome_options=option)

创建了ChromeOptions类之后就是添加参数,添加参数有几个特定的方法,分别对应添加不同类型的配置项目

from selenium import webdriver

option = webdriver.ChromeOptions()

添加启动参数

option.add_argument()

添加扩展应用

option.add_extension()

option.add_encoded_extension()

添加实验性质的设置参数

option.add_experimental_option()

设置调试器地址

option.debugger_address()

常用配置参数:

from selenium import webdriver

option = webdriver.ChromeOptions()

添加UA

options.add_argument(‘user-agent=“MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1”’)

指定浏览器分辨率

options.add_argument(‘window-size=1920x3000’)

谷歌文档提到需要加上这个属性来规避bug

chrome_options.add_argument(‘–disable-gpu’)

隐藏滚动条, 应对一些特殊页面

options.add_argument(‘–hide-scrollbars’)

不加载图片, 提升速度

options.add_argument(‘blink-settings=imagesEnabled=false’)

浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败

options.add_argument(‘–headless’)

以最高权限运行

options.add_argument(‘–no-sandbox’)

手动指定使用的浏览器位置

options.binary_location = r"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"

#添加crx插件

option.add_extension(‘d:\crx\AdBlock_v2.17.crx’)

禁用JavaScript

option.add_argument(“–disable-javascript”)

设置开发者模式启动,该模式下webdriver属性为正常值

options.add_experimental_option(‘excludeSwitches’, [‘enable-automation’])

禁用浏览器弹窗

prefs = {

‘profile.default_content_setting_values’ : {

‘notifications’ : 2

}

}

options.add_experimental_option(‘prefs’,prefs)

添加代理 ip

options.add_argument(“–proxy-server=http://XXXXX.com:80”)

driver = webdriver.Chrome(chrome_options=chrome_options)

其他配置项目参数

–user-data-dir=”[PATH]”

指定用户文件夹User Data路径,可以把书签这样的用户数据保存在系统分区以外的分区

–disk-cache-dir=”[PATH]“

指定缓存Cache路径

–disk-cache-size=

指定Cache大小,单位Byte

–first run

重置到初始状态,第一次运行

–incognito

隐身模式启动

–disable-javascript

禁用Javascript

–omnibox-popup-count=“num”

将地址栏弹出的提示菜单数量改为num个

–user-agent=“xxxxxxxx”

修改HTTP请求头部的Agent字符串,可以通过about:version页面查看修改效果

–disable-plugins

禁止加载所有插件,可以增加速度。可以通过about:plugins页面查看效果

–disable-javascript

禁用JavaScript,如果觉得速度慢在加上这个

–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代理 [via 1/2]

–lang=zh-CN

设置语言为简体中文

–disk-cache-dir

自定义缓存目录

–disk-cache-size

自定义缓存最大值(单位byte)

–media-cache-size

自定义多媒体缓存最大值(单位byte)

–bookmark-menu

在工具 栏增加一个书签按钮

–enable-sync

启用书签同步

3、 常用参数搭配

=========

制作无头浏览器

第一种写法

from selenium import webdriver

from selenium.webdriver.chrome.options import Options

chrome_options = Options()

chrome_options.add_argument(‘–headless’)

chrome_options.add_argument(‘–disable-gpu’)

driver = webdriver.Chrome(chrome_options=chrome_options)

第二种写法

from selenium import webdriver

options = webdriver.ChromeOptions()

options.add_argument(‘–headless’)

options.add_argument(‘–disable-gpu’)

driver = webdriver.Chrome(chrome_options=options)

规避检测

门户网站检测如果是selenium请求的,有可能会拒绝访问。这也是一种反爬机制

实现规避检测

from selenium import webdriver

from selenium.webdriver import ChromeOptions

options = ChromeOptions()

options.add_experimental_option(‘excludeSwitcher’, [‘enable-automation’])

driver = webdriver.Chrome(options=options)

注意:这里只能使用 options 添加

如果有其他的模块要添加,注意要分开添加

4、 分浏览器启动

=========

from selenium import webdriver

driver = webdriver.Firefox() # Firefox浏览器

driver = webdriver.Firefox(executable_path=“驱动路径”)

driver = webdriver.Chrome() # Chrome浏览器

driver = webdriver.Ie() # Internet Explorer浏览器

driver = webdriver.Edge() # Edge浏览器

driver = webdriver.Opera() # Opera浏览器

driver = webdriver.PhantomJS() # PhantomJS

二、 基本语法

=======

1、 元素定位

=======

元素定位语法

常用语法:

find_element_by_id()

find_element_by_name()

find_element_by_class_name()

find_element_by_tag_name()

find_element_by_link_text()

find_element_by_partial_link_text()

find_element_by_xpath()

find_element_by_css_selector()

在 element 变成 elements 时,返回符合条件的所有元素组成的数组

2、 控制浏览器操作

==========

控制浏览器大小

  • driver.set_window_size(480, 800)

浏览器后退,前进

driver.forward()

driver.back()

刷新

  • driver.refresh()

3、 操作元素的方法

==========

3.1 点击和输入

=========

driver.find_element_by_id(“kw”).clear() # 清空文本

driver.find_element_by_id(“kw”).send_keys(“selenium”) # 模拟按键输入

driver.find_element_by_id(“su”).click() # 单击元素

3.2 提交

======

在搜索框模拟回车操作

search_text = driver.find_element_by_id(‘kw’) search_text.send_keys(‘selenium’) search_text.submit() # 模拟回车操作

3.3 其他

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python爬虫全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)
img

习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python爬虫全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注:python)
[外链图片转存中…(img-XeRZZtO2-1711006965847)]

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐