100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Python selenium自动化操作Chrome浏览器

Python selenium自动化操作Chrome浏览器

时间:2024-02-27 20:26:58

相关推荐

Python selenium自动化操作Chrome浏览器

活动地址:CSDN21天学习挑战赛

文章目录

一、Selenium搭建环境1、安装2、安装Chrome安装浏览器驱动WebDriver1)查看Chrome浏览器版本2)在驱动器版本里选择一个版本相近的3)常用方法或属性(1)实战有界面(2)实战无界面(3)常用参数说明(4)八中元素定位方法(5)元素的操作(6)前进后退(7)嵌套JS

一、Selenium搭建环境

Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持目前比较主流的浏览器。它也实现了诸多自动化功能,比如软件自动化测试,检测软件与浏览器兼容性,自动录制、生成不同语言的测试脚本,以及自动化爬虫等。

1、安装

pip install selenium

2、安装Chrome安装浏览器驱动WebDriver

Chrome驱动下载地址:http://chromedriver./index.html

1)查看Chrome浏览器版本

2)在驱动器版本里选择一个版本相近的

3)常用方法或属性

(1)实战有界面

from selenium import webdriverimport time# 创建Chrome浏览器对象browser = webdriver.Chrome()# 发送请求browser.get('/')# 打印标题print(browser.title)# 延迟几秒看下浏览器time.sleep(3)# 退出浏览器browser.quit()

(2)实战无界面

headless支持无界面命令模式

注意:chrome_options已经弃用了,改为options即可

DeprecationWarning: use options instead of chrome_options

from selenium import webdriver# 创建Chrome浏览器对象chrome_opt = webdriver.ChromeOptions()# 开启无界面模式chrome_opt.add_argument('--headless')# 禁用gpuchrome_opt.add_argument('--disable-gpu')# 实例化配置带有driver对象browser = webdriver.Chrome(options=chrome_opt)# 发送请求browser.get('/')# 打印标题print(browser.title)# 退出浏览器browser.quit()

(3)常用参数说明

(4)八中元素定位方法

老版本方法新版本方法

注意:

获取单个元素

driver.find_element()

find_element(By.ID, 'kw')find_element(by=By.ID, value='kw')

获取多个元素

driver.find_elements()

find_elements(By.ID, 'kw')find_elements(by=By.ID, value='kw')

案例

from selenium import webdriverfrom mon.by import Byimport time# 打开chrome浏览器driver = webdriver.Chrome()# 打开百度搜索页面driver.get('/')# 通过id定位元素id = driver.find_element(By.ID, 'wrapper')print(id)# 通过name定位元素name = driver.find_element(By.NAME, 'password')print(name)# 通过name定位多元素names = driver.find_elements(By.NAME, 'password')print(names)# 定位class元素class_name = driver.find_element(By.CLASS_NAME, 'cc')print(class_name)# 定位class_name多元素class_names = driver.find_elements(By.CLASS_NAME, 'cc')print(class_names)# 通过xpath来获取元素xpath = driver.find_element(By.XPATH, '//*[@id="wrapper"]/div[6]/div/p[2]')print(xpath)print(xpath.text)# 通过link_text标签来获取元素(精确定位)link_text = driver.find_element(By.LINK_TEXT, '设为首页')print(link_text)# 通过link_text标签来获取元素(模糊定位)partial_link_text = driver.find_element(By.PARTIAL_LINK_TEXT, '首页')print(partial_link_text)# 通过tag标签来获取元素tag = driver.find_element(By.TAG_NAME, 'img')print(tag)# 强制等待2秒查看效果time.sleep(2)# 关闭浏览器driver.quit()

结果:

D:\python383\python.exe D:/pythonproject/csdn/RequestsDemo.py<selenium.webdriver.remote.webelement.WebElement (session="d4a0544fde3220aa6c6d73d10f4eef7d", element="6d607d2d-cc8e-46a1-87ac-bf4c1324fb98")>================================================================================分割线================================================================================<selenium.webdriver.remote.webelement.WebElement (session="d4a0544fde3220aa6c6d73d10f4eef7d", element="1cca4773-69f9-4059-b29c-e534b907af6c")>[<selenium.webdriver.remote.webelement.WebElement (session="d4a0544fde3220aa6c6d73d10f4eef7d", element="1cca4773-69f9-4059-b29c-e534b907af6c")>]================================================================================分割线================================================================================<selenium.webdriver.remote.webelement.WebElement (session="d4a0544fde3220aa6c6d73d10f4eef7d", element="09e4359e-d6fb-4c6e-881e-c25e53689cd7")>[<selenium.webdriver.remote.webelement.WebElement (session="d4a0544fde3220aa6c6d73d10f4eef7d", element="09e4359e-d6fb-4c6e-881e-c25e53689cd7")>, <selenium.webdriver.remote.webelement.WebElement (session="d4a0544fde3220aa6c6d73d10f4eef7d", element="f99f220f-70f1-4dae-970c-9a0a1c5f537c")>]================================================================================分割线================================================================================<selenium.webdriver.remote.webelement.WebElement (session="d4a0544fde3220aa6c6d73d10f4eef7d", element="61ef193c-bbf0-4619-b847-f7566b527a66")>Copyright © 笔趣阁 京ICP备88080001号================================================================================分割线================================================================================<selenium.webdriver.remote.webelement.WebElement (session="d4a0544fde3220aa6c6d73d10f4eef7d", element="ccfe2632-e494-49b2-bd4d-138642a4bc13")>================================================================================分割线================================================================================<selenium.webdriver.remote.webelement.WebElement (session="d4a0544fde3220aa6c6d73d10f4eef7d", element="ccfe2632-e494-49b2-bd4d-138642a4bc13")>================================================================================分割线================================================================================<selenium.webdriver.remote.webelement.WebElement (session="d4a0544fde3220aa6c6d73d10f4eef7d", element="aa815fdd-a8af-475b-bb4f-6214e137b118")>Process finished with exit code 0

(5)元素的操作

from selenium import webdriverfrom mon.by import Byimport time# 打开chrome浏览器driver = webdriver.Chrome()# 打开百度搜索页面driver.get('/')# 通过id定位元素# 通过xpath来获取元素文本信息xpath = driver.find_element(By.XPATH, '//*[@id="wrapper"]/div[6]/div/p[2]')print(xpath.text)# 通过xpath来获取元素属性信息xpath = driver.find_element(By.TAG_NAME, 'a')print(xpath.get_attribute('href'))# 强制等待2秒查看效果time.sleep(2)# 关闭浏览器driver.quit()

(6)前进后退

# 前进browser.forward()# 后退 browser.back()

(7)嵌套JS

from selenium import webdriverimport timebrowser = webdriver.Chrome()url = '/'browser.get(url)# js语句 滚动条拉倒最底部js = "var q=document.documentElement.scrollTop=10000"# 执行js的方法browser.execute_script(js)time.sleep(3)browser.quit()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。