Python selenium webdriver 基本使用

简介: 系列文章目录selenium webdriver 的常用示例前言一、Pip安装&创建Bowser对象1.Pip install selenium2.创建Bowser对象二、webdriver.ChromeOptions配置配置浏览器的常用模式三、常用代码四、selenium的异常处理总结

selenium webdriver 的常用示例

文章目录

前言

一、Pip安装&创建Bowser对象

1.Pip install selenium

2.创建Bowser对象

二、webdriver.ChromeOptions配置

配置浏览器的常用模式

三、常用代码

四、selenium的异常处理

总结

前言

本文就介绍了Selenium的常用内容:了解Selenium Webdriver 是干什么的


以下是本篇文章正文内容,下面案例可供参考

一、Pip安装&创建Bowser对象

1.Pip install selenium

pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple

2.创建Bowser对象

# 导入webdriver模块
from selenium import webdriver

# 指定使用Chrome浏览器
driver = webdriver.Chrome()  # chrome_options,executable_path常用这两个参数

二、webdriver.ChromeOptions配置

配置浏览器的常用模式

chromeoptions 的常用功能
(1)添加启动参数 (add_argument)
(2)添加扩展应用参数 (add_extension, add_encoded_extension),常用在代理身份验证
(3)添加实验性质参数 (add_experimental_option)
代码如下(示例):
options= webdriver.ChromeOptions()  # 创建配置对象
options.add_argument('lang=zh_CN.UTF-8')  # 设置中文
options.add_argument('--headless')  # 无头参数,浏览器隐藏在后台运行
options.add_argument('--disable-gpu') # 禁用GPU加速
options.add_argument('--start-maximized')#浏览器最大化
options.add_argument('--window-size=1280x1024') # 设置浏览器分辨率(窗口大小)
options.add_argument('--user-agent=""') # 设置请求头的User-Agent
options.add_argument('--incognito')  # 隐身模式(无痕模式)
options.add_argument(f'--proxy-server={proxy}')  # 添加IP代理 proxy=f"http://{ip}:{port}"
# 关闭'Chrome目前受到自動測試軟體控制'的提示
options.add_experimental_option('useAutomationExtension', False)
options.add_experimental_option('excludeSwitches', ['enable-automation'])
prefs = {
    "download.default_directory":"D:\download",  # 设置浏览器下载地址(绝对路径)
    "profile.managed_default_content_settings.images": 2,  # 不加载图片
}
chrome_options.add_experimental_option('prefs', prefs)  # 添加prefs 
# chrome_options="浏览器配置参数", executable_path="浏览器驱动绝对路径"
driver = webdriver.Chrome(chrome_options=options")  # 创建浏览器对象
driver.maximize_window()  # 浏览器窗口最大化
driver.set_page_load_timeout(30)  # 设置连接超时30秒

三、常用代码

    # 导入webdriver模块
    from selenium import webdriver
    driver = webdriver.Chrome()  # chrome_options,executable_path常用这两个参数
    # get 会一直等到页面被完全加载,然后才会执行下一步代码,如果超出了set_page_load_timeout()的设置,则会抛出异常。
    driver.get("https://baidu.com/")
    new_window = driver.window_handles[-1]   # 新窗口'-1'代表打开的最后一个窗口,导航栏有多少个窗口根据下标来锁定
    driver.switch_to.window(new_window)  # 切换到新窗口:
    driver.switch_to.frame('passport_iframe')  # 根据name或id 定位至 iframe
    driver.switch_to.default_content()  # 切换出(iframe)至默认,有好多种切换方式找BaiDu
    driver.find_element_by_xpath('//input[@xx="xxxx"]').send_keys(content)  # 根据xpath语法定位元素输入内容
    driver.find_element_by_xpath('//div[@xx="xxxx"]').click()  # 根据xpath语法定位元素后并点击
    driver.find_element_by_xpath('//div[@xx="xxxx"]').text  # 根据xpath语法定位后获取元素的文本信息
    driver.get_cookie('name')  #根据name取出对应字典类型的对象
    driver.get_cookies()  # 返回一个列表,包含多个字典类型的对象
    # 添加Cookie部分参数介绍:name=cookie的名称,value=cookie对应的值,domain=服务器域名,expiry=Cookie有效终止日期
    driver.add_cookie({'name' : 'xxx', 'value' : 'xxx'})  # 添加cookie
    driver.delete_cookie('name')  # 删除指定部分的Cookie
    driver.delete_all_cookies()  # 删除所有Cookie
    js="var q=document.documentElement.scrollTop=10000"  # 滚动到最下面
    js="var q=document.documentElement.scrollTop=0"  # 滚动到最上面
    driver.execute_script(js)  # 执行JS代码,更多自行BaiDu 
    driver.quit()  # 退出浏览器

四、selenium的异常处理

# 导入exceptions模块
from selenium.common import exceptions
try:
    # 执行代码 
except exceptions.TimeoutException:
    print("xxxx - 请求加载超时异常!\n", end='')
except exceptions.NoSuchElementException:
       print("xxxx - 网页元素定位异常!\n", end='')
except exceptions.NoSuchWindowException:
    print("xxxx - 目标窗口切换异常!\n", end='')
except exceptions.WebDriverException:
       print("xxxx - 浏览器对象各种异常!\n", end='')
except Exception:
    print("xxxx - 以上未捕捉到的异常!\n", end='')
selenium 更多异常参考: https://blog.csdn.net/cunhui1209/article/details/112544287

总结

例如:以上就是今天要记录的内容,本文仅仅简单介绍了selenium的使用,selenium 提供了大量能使我们捷地实现自动化测试的函数和方法,后续会在本文的基础上记录新的常用操作。
Google官方下载地址:https://www.google.cn/chrome/
Google驱动下载地址:https://npm.taobao.org/mirrors/chromedriver/
驱动配置请参考:https://blog.csdn.net/flyskymood/article/details/123203105

目录
相关文章
|
9月前
|
Web App开发 存储 前端开发
Python+Selenium自动化爬取携程动态加载游记
Python+Selenium自动化爬取携程动态加载游记
|
数据采集 测试技术 Python
自动化淘宝秒杀:使用Selenium WebDriver的实战指南
本文详细介绍了如何利用Selenium WebDriver自动化淘宝秒杀操作,包括环境配置、代码实现及注意事项,旨在帮助读者提升秒杀成功率,同时提醒合理使用以遵守平台规则。
955 132
|
7月前
|
SQL 测试技术 数据库
healenium+python+selenium
上次介绍了如何利用healenium+java+selenium来实现selenium的自愈,这次介绍如何healenium+python+selenium。关于healenium+python+selenium网上资料更少,并且甚至是错误的。在著名的书籍《软件测试权威指南中》也是有一定问题的。现在介绍如下
423 4
|
11月前
|
数据采集 Web App开发 JavaScript
基于Selenium的Python爬虫抓取动态App图片
基于Selenium的Python爬虫抓取动态App图片
836 68
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
833 5
|
11月前
|
数据采集 Web App开发 前端开发
Python+Selenium爬虫:豆瓣登录反反爬策略解析
Python+Selenium爬虫:豆瓣登录反反爬策略解析
|
数据采集 Web App开发 存储
打造高效的Web Scraper:Python与Selenium的完美结合
本文介绍如何使用Python结合Selenium,通过代理IP、设置Cookie和User-Agent抓取BOSS直聘的招聘信息,包括公司名称、岗位、要求和薪资。这些数据可用于行业趋势、人才需求、企业动态及区域经济分析,为求职者、企业和分析师提供宝贵信息。文中详细说明了环境准备、代理配置、登录操作及数据抓取步骤,并提醒注意反爬虫机制和验证码处理等问题。
485 1
打造高效的Web Scraper:Python与Selenium的完美结合
|
Web App开发 数据采集 数据安全/隐私保护
Selenium库详解:Python实现模拟登录与反爬限制的进阶指南
Selenium库详解:Python实现模拟登录与反爬限制的进阶指南
|
数据采集 Web App开发 前端开发
Python爬虫进阶:Selenium在动态网页抓取中的实战
【10月更文挑战第26天】动态网页抓取是网络爬虫的难点,因为数据通常通过JavaScript异步加载。Selenium通过模拟浏览器行为,可以加载和执行JavaScript,从而获取动态网页的完整内容。本文通过实战案例,介绍如何使用Selenium在Python中抓取动态网页。首先安装Selenium库和浏览器驱动,然后通过示例代码展示如何抓取英国国家美术馆的图片信息。
976 6
|
Web App开发 Java
使用java操作浏览器的工具selenium-java和webdriver下载地址
【10月更文挑战第12天】Selenium-java依赖包用于自动化Web测试,版本为3.141.59。ChromeDriver和EdgeDriver分别用于控制Chrome和Edge浏览器,需确保版本与浏览器匹配。示例代码展示了如何使用Selenium-java模拟登录CSDN,包括设置驱动路径、添加Cookies和获取页面源码。
1064 6

推荐镜像

更多