前言🙈🙉🙊
这是 Python 笔记的第 n 篇, 使用 Selenium 模拟用户在浏览器中的行为。
Selenium
Python 可以使用一些自动化测试框架和工具来搭建自动化测试。
Selenium 是一个用于自动化浏览器操作的工具,它可以模拟用户在浏览器中的行为。
例如:点击、输入文字、选择下拉框等。
要使用 Selenium 进行自动化测试,需要搭建一个测试环境。以下是一些常用的步骤:
安装Python:
Selenium 是 Python 库,因此需要安装Python。可以从Python官网下载并安装Python。
安装Selenium库:
在Python中使用Selenium,需要安装Selenium库。
可以使用pip命令来安装Selenium库,例如:
//安装
pip install selenium
//查看版本号
pip show selenium
安装浏览器驱动程序:
Selenium 需要与浏览器交互,因此需要安装浏览器的驱动程序。
例如,如果使用 Chrome 浏览器,需要下载并安装 ChromeDriver 驱动程序。
可以从 ChromeDriver 的官网下载对应的驱动程序。
Chrome浏览器驱动下载
chromedriver.storage.googleapis.com/index.html
点击浏览器右上角的三个点,再点击设置,在关于Chrome的选项里,可以查看浏览器版本号。
根据浏览器版本,下载对应的驱动,解压后 exe 放在 Python 安装目录下面。
启动浏览器:
使用 Selenium 时,需要启动浏览器。可以使用 webdriver 模块来启动浏览器,例如:
from selenium import webdriver
# 创建一个Chrome浏览器对象
driver = webdriver.Chrome()
在这里,使用Chrome浏览器,创建了一个Chrome浏览器对象。
编写测试代码:
编写测试代码,包括模拟用户操作、检查页面元素等。
使用Selenium提供的API来实现这些功能。
Selenium提供了很多API来模拟用户在浏览器中的操作。以下是一些常用的API:
get(url):打开指定的网页。
find_element_by_*():查找页面元素,例如:
# 按ID查找元素
driver.find_element_by_id('element-id')
# 按标签名查找元素
driver.find_element_by_tag_name('tag-name')
# 按类名查找元素
driver.find_element_by_class_name('class-name')
# 按链接文本查找元素
driver.find_element_by_link_text('link-text')
ps:
由于版本迭代,新版的selenium已经不再使用find_element_by_id方法。
改用 find_element
driver.find_element(By.NAME,'name')
driver.find_element(By.CLASS_NAME,'class-name')
driver.find_element(By.TAG_NAME, 'tag-name')
driver.find_element(By.LINK_TEXT,'link-text')
click():模拟点击一个元素。
send_keys(keys):模拟在元素中输入文本。
submit():提交表单。
execute_script(script):执行JavaScript代码。
switch_to_*():切换到不同的窗口、frame或alert,例如:
# 切换到指定的窗口
driver.switch_to.window(window_handle)
# 切换到指定的frame
driver.switch_to.frame(frame)
# 切换到alert
alert = driver.switch_to.alert
get_attribute(attribute_name):获取元素的属性值。
text():获取元素的文本内容。
is_displayed():判断元素是否可见。
is_enabled():判断元素是否可用。
is_selected():判断元素是否被选中。
ActionChains(driver):模拟鼠标操作,例如:
# 鼠标移动到指定的元素上
element = driver.find_element_by_id('element-id')
ActionChains(driver).move_to_element(element).perform()
# 拖拽元素到指定的位置
target = driver.find_element_by_id('target-id')
ActionChains(driver).drag_and_drop(element, target).perform()
使用 Selenium 模拟浏览器操作的示例代码:
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
# 创建一个Chrome浏览器对象
driver = webdriver.Chrome()
# 打开一个网页
driver.get('https://www.baidu.com')
sleep(1)
# 在搜索框中输入关键字
# search_box = driver.find_element_by_id('kw')
# 由于版本迭代,新版的selenium已经不再使用find_element_by_id方法
search_box = driver.find_element(By.ID, 'kw')
search_box.send_keys('Python')
sleep(1)
# 点击搜索按钮
# search_button = driver.find_element_by_id('su')
search_button = driver.find_element(By.ID, 'su')
search_button.click()
sleep(1000)
# 关闭浏览器
# driver.quit()
首先,使用 webdriver 创建了一个Chrome浏览器对象,然后使用 get() 方法打开了百度网站。
接着,找到搜索框和搜索按钮的元素,并使用 send_keys() 和 click() 方法模拟用户在浏览器中的操作。
最后,使用 quit() 方法关闭浏览器。
除了 Chrome 浏览器,Selenium 还支持其他浏览器。
例如 Firefox 、Edge 和 Safari 等。
demo
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
# 定义一个Chrome浏览器驱动
webdriver = webdriver.Chrome()
webdriver.get("https://www.baidu.com/")
sleep(1)
# # 输入框里面输入搜索内容
webdriver.find_element(By.ID, "kw").send_keys("半佛仙人")
# 触发点击按钮,开始搜索
webdriver.find_element(By.ID, "su").click()
sleep(1)
# 点击搜索结果
webdriver.find_element(By.XPATH, '//*[@id="1"]/div/div/h3/a').click()
sleep(10)
webdriver.quit()
以上就是今天的全部内容分享,觉得有用的话欢迎点赞收藏哦!
Python经验分享
学好 Python 不论是用于就业还是做副业赚钱都不错,而且学好Python还能契合未来发展趋势——人工智能、机器学习、深度学习等。
小编是一名Python开发工程师,自己整理了一套最新的Python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。如果你也喜欢编程,想通过学习Python转行、做副业或者提升工作效率,这份【最新全套Python学习资料】 一定对你有用!
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、Python量化交易等学习教程。带你从零基础系统性的学好Python!
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
我已经上传至优快云官方,如果需要可以扫描下方官方二维码免费获取【保证100%免费】
*今天的分享就到这里,喜欢且对你有所帮助的话,记得点赞关注哦~下回见 !