百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 软件资讯 > 正文

selenium超全教程(1)——持续更新中

ninehua 2024-12-06 18:08 14 浏览

安装chrome浏览器驱动

安装chrome浏览器驱动:一种是常见的手动安装,另一种则是利用第三方库自动安装。

前提:安装好了Chrome浏览器


[1]手动安装

先查看本地Chrome浏览器版本:(两种方式均可)

在浏览器的地址栏键入Chrome://version,即可查看浏览器版本号或者点击Chrome菜单,帮助→关于Google Chrome,查看浏览器版本号再选择对应版本号的驱动版本

下载地址:https://chromedriver.storage.googleapis.com/index.html

最后进行环境变量配置,也就是将对应的ChromeDriver的可执行文件chromedriver.exe文件拖到Python的Scripts目录下。

注:当然也可以不这样做,但是在调用的时候指定chromedriver.exe绝对路径亦可。


[2]自动安装

自动安装需要用到第三方库webdriver_manager,先安装这个库,然后调用对应的方法即可。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from webdriver_manager.chrome import ChromeDriverManager


browser = webdriver.Chrome(ChromeDriverManager().install())


browser.get('http://www.baidu.com')
search = browser.find_element_by_id('kw')
search.send_keys('python')
search.send_keys(Keys.ENTER)


# 关闭浏览器
browser.close()

在上述代码中,ChromeDriverManager().install()方法就是自动安装驱动的操作,它会自动获取当前浏览器的版本并去下载对应的驱动到本地。

如果本地已经有该浏览器渠道,则会提示其已存在。

安装edge浏览器驱动

安装edge浏览器驱动:一种是常见的手动安装,另一种则是利用第三方库自动安装。

前提:安装好了edge浏览器


[1]手动安装

先查看本地edge浏览器版本:(两种方式均可)

在浏览器的地址栏键入edge://version,即可查看浏览器版本号或者点击edge菜单,帮助和反馈→关于microsoft edge,查看浏览器版本号再选择对应版本号的驱动版本

下载地址:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

最后进行环境变量配置,也就是将对应的EdgeDriver的可执行文件msedgedriver.exe文件拖到Python的Scripts目录下。

注:当然也可以不这样做,但是在调用的时候指定msedgedriver.exe绝对路径亦可。


[2]自动安装

自动安装需要用到第三方库webdriver_manager,先安装这个库,然后调用对应的方法即可。

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from webdriver_manager.microsoft import EdgeChromiumDriverManager


browser = webdriver.Edge(EdgeChromiumDriverManager().install())


browser.get('http://www.baidu.com')
search = browser.find_element_by_id('kw')
search.send_keys('python')
search.send_keys(Keys.ENTER)


# 关闭浏览器
browser.close()

在上述代码中,EdgeChromiumDriverManager().install()方法就是自动安装驱动的操作,它会自动获取当前浏览器的版本并去下载对应的驱动到本地。

如果本地已经有该浏览器渠道,则会提示其已存在。

初始化浏览器对象

在准备工作部分我们提到需要将浏览器渠道添加到环境变量或者指定绝对路径,前者可以直接初始化后者则需要进行指定。

from selenium import webdriver


# 初始化浏览器为chrome浏览器
browser = webdriver.Chrome()


# 指定绝对路径的方式
path = r'D:\programs\python\Python37\Scripts\chromedriver.exe'
browser = webdriver.Chrome(path)


# 关闭浏览器
browser.close()

以上是有界面的浏览器,我们还可以初始化浏览器为无界面的浏览器。

from selenium import webdriver


# 无界面的浏览器
option = webdriver.ChromeOptions()
option.add_argument("headless")
browser = webdriver.Chrome(options=option)


# 访问百度首页
browser.get(r'https://www.baidu.com/')
# 截图预览
browser.get_screenshot_as_file('截图.png')


# 关闭浏览器
browser.close()

完成浏览器对象的初始化后并将其赋值给了browser对象,接下来我们就可以调用browser来执行各种方法模拟浏览器的操作了。

访问页面

进行页面访问使用的是get方法,传入参数为待访问页面的URL地址即可。

from selenium import webdriver


# 初始化浏览器为chrome浏览器
browser = webdriver.Chrome()


# 访问百度首页
browser.get(r'https://www.baidu.com/')


# 关闭浏览器
browser.close()

设置浏览器大小

set_window_size()方法可以用来设置浏览器大小(就是分辨率),而maximize_window则是设置浏览器为全屏!

from selenium import webdriver
import time  


browser = webdriver.Chrome()


# 设置浏览器大小:全屏
browser.maximize_window()   
browser.get(r'https://www.baidu.com')  
time.sleep(2)


# 设置分辨率 500*500
browser.set_window_size(500,500)  
time.sleep(2)


# 设置分辨率 1000*800
browser.set_window_size(1000,800) 
time.sleep(2)


# 关闭浏览器
browser.close()

刷新页面

刷新页面是我们在浏览器操作时很常用的操作,这里refresh()方法可以用来进行浏览器页面刷新。

from selenium import webdriver
import time  


browser = webdriver.Chrome()


# 设置浏览器全屏
browser.maximize_window()   
browser.get(r'https://www.baidu.com')  
time.sleep(2)


try:
    # 刷新页面
    browser.refresh()  
    print('刷新页面')
except Exception as e:
    print('刷新失败')
   
# 关闭浏览器
browser.close()

大家也是自行演示看效果哈,同F5快捷键。

前进后退

前进后退也是我们在使用浏览器时非常常见的操作,这里forward()方法可以用来实现前进,back()可以用来实现后退。

from selenium import webdriver
import time  


browser = webdriver.Chrome()


# 设置浏览器全屏
browser.maximize_window()   
browser.get(r'https://www.baidu.com')  
time.sleep(2)


# 打开淘宝页面
browser.get(r'https://www.taobao.com')  
time.sleep(2)


# 后退到百度页面
browser.back()  
time.sleep(2)


# 前进的淘宝页面
browser.forward() 
time.sleep(2)


# 关闭浏览器
browser.close()

获取页面基础属性

当我们用selenium打开某个页面,有一些基础属性如网页标题、网址、浏览器名称、页面源码等信息。

from selenium import webdriver


browser = webdriver.Chrome()
browser.get(r'https://www.baidu.com') 


# 网页标题
print(browser.title)
# 当前网址
print(browser.current_url)
# 浏览器名称
print(browser.name)
# 网页源码
print(browser.page_source)

输出如下:

百度一下,你就知道
https://www.baidu.com/
chrome
<html><head><script async="" src="https://passport.baidu.com/passApi/js/wrapper.js?cdnversion=1640515789507&_=1640515789298"></script><meta http-equiv="Content-Type" content="text/html;charset=utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta content="always" name="referrer"><meta name="theme-color"..."

需要注意的是,这里的页面源码我们就可以用正则表达式、Bs4、xpath以及pyquery等工具进行解析提取想要的信息了。

定位页面元素之id定位

以百度首页的搜索框节点为例,搜索python

find_element_by_id()根据id属性获取,这里id属性是 kw

from selenium import webdriver
import time  


browser = webdriver.Chrome()


browser.get(r'https://www.baidu.com')  
time.sleep(2)


# 在搜索框输入 python
browser.find_element_by_id('kw').send_keys('python')
time.sleep(2)


# 关闭浏览器
browser.close()

定位页面元素之name定位

以百度首页的搜索框节点为例,搜索python

find_element_by_name()根据name属性获取,这里name属性是 wd

from selenium import webdriver
import time  


browser = webdriver.Chrome()


browser.get(r'https://www.baidu.com')  
time.sleep(2)


# 在搜索框输入 python
browser.find_element_by_name('wd').send_keys('python')
time.sleep(2)


# 关闭浏览器
browser.close()

下期继续分享元素class、tag、link、partial、xpath、css、find_element的By定位等,感兴趣的朋友可以关注。

希望本文对你有所帮助~~如果对软件测试、接口测试、自动化测试、面试经验交流感兴趣可以私聊我或关注公众号“特斯汀软件测试”。免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。

相关推荐

64位Win7中7zip无法关联文件的问题

问题1:win7x64中安装了7zip,在解压文件右键打开无法关联文件。解决方法1:在开始菜单中打开7-zipFileManage-》工具-》选项-》7-zip勾选“添加7-zip到右键菜单...

MacBook电脑一键完成7Z、zip、dmg文件压缩,超高效率

许多朋友想要压缩文件,但又找不到合适的软件工具,今天小编推荐一个,本人一直在使用Mac压缩软件——MyZip!1、强大的压缩功能,满足日常生活的各种需要!...

7-Zip 遭抵制?呼吁者定下“三宗罪”:伪开源、不安全、作者来自俄罗斯

...

Win电脑必装良心APP!8款高效办公软件推荐

1、浏览器:EdgeWindows自带浏览器,速度快,内存占用少,集成度高,可以跨平台同步,支持很多拓展程序来增加浏览器的使用体验。...

7-Zip 解压缩工具被曝安全漏洞,可执行远程代码

7-Zip工具介绍7-Zip是一款广泛使用的开源压缩工具,以其高压缩比、多格式支持和免费开源的特性闻名。用户遍布全球,常用于文件的压缩与解压缩操作。然而,近期曝出的一系列安全漏洞,使得这款软件的安...

「IT之家评测室」英特尔酷睿i9-9900KS首发评测

英特尔今天正式解禁了酷睿i9-9900KS处理器,作为英特尔第一款全核5.0GHz的处理器,i9-9900KS的出现让追求极致性能的玩家又有了新的选择。因为工艺问题,英特尔现阶段桌面处理器依旧停留在1...

这才是“全家桶”软件该有的样子,win10电脑必备实用软件推荐

最近因为网课的原因,和很多老师打交道,才发现很多人的电脑里,弹窗广告满天飞,尤其是家里有小孩的,露骨的广告是很令人烦恼。那么这些弹窗广告究竟是从哪里来的呢?小迷虫被很多人问过,于是小迷虫反问:你给电脑...

牛年新年coreelec新升级19.0 coreelec 9.27

2021牛年新年刚过,CoreELEC新的升级就来了。我的升级方法是自己创新的文件替换大法,此法快速高效,中文、遥控和液晶显示,及...

靠谱!龙芯3A6000处理器套装测评,体验远超预期

2023年11月28日,龙芯中科在北京国家会议中心举办了盛大的发布会,会上发布了一系列龙芯产品,其中就包括了采用完全自主研发LoongArch指令集和龙芯第四代微架构的龙芯3A6000处理器。同时,知...

使用Python进行压缩与解压缩 用python解压压缩包

在日常工作中,除了会涉及到使用Python处理文本文件,有时候还会涉及对压缩文件的处理。通常会涉及到的压缩文件格式有:...

游戏持平,生产力更佳,浅谈14700KF和7800X3D谁更值得入手

#秋日生活打卡季#写在前面...

“普通”压缩包实则隐藏恶意木马,黑客利用“ZIP串联文件”攻击

IT之家11月12日消息,安全公司PerceptionPoint报道,有黑客正在利用一种被称为“ZIP串联文件”的复杂规避策略针对Windows用户发动攻击。IT之家获悉,所谓“Z...

剔除软件中的流氓植入 清除流氓软件的工具

虽然流氓软件早已成为过街老鼠人人喊打,但是出于推广的需要,现在仍然有很多软件在进行捆绑。一些不知名网站下载的软件,甚至可能捆绑了木马、病毒等恶意软件。为了不让这些流氓软件进驻我们的电脑,可以在安装之前...

7zip如何把1G文件压缩到200M?三种方法快速简单!

文件太大会带来很多麻烦,不仅会占据我们有限的存储空间,而且传输给其他朋友或同事时也会因为太大而无法传输,或者传输太慢太耗时,实在让人烦躁......那么如何把1G文件压缩到200M呢?下面介绍三种有效...

7zip怎么压缩文件到最小?这样操作非常简单!

7-zip是一款免费开源的压缩软件,当我们需要打包压缩文件的时候,会用到它处理文件,那具体该怎么使用7-zip压缩文件到最小呢?下面简单有效的几个步骤。...