Selenium 模块详解

Selenium 自动化流程

  1. 自动化程序调用 selenium 客户端库函数;
  2. 客户端库会发送 selenium 命令给浏览器的驱动程序;
  3. 浏览器驱动程序接收到命令后,驱动浏览器去执行命令;
  4. 浏览器执行命令;
  5. 浏览器驱动程序获取命令执行结果,返回给我们自动化程序;
  6. 自动化程序对返回结果进行处理。

下载,安装浏览器驱动

  • 注意:浏览器驱动版本必须与浏览器版本匹配。

网页资源下载

  • 谷歌浏览器下载地址:https://www.google.cn/chrome/
  • Chrome 浏览器驱动下载:https://chromedriver.storage.googleapis.com/index.html

百度网盘资源下载

链接:https://pan.baidu.com/s/16lamRFfeAm6Fr9X8cQQPQQ
提取码:4z2t

操作使用

简单使用

# -*- coding: utf-8 -*-
from selenium import webdriver

# 创建 WebDriver 对象,使用 chrome 驱动
wd = webdriver.Chrome(r"C:\zhang\webDriver\chromedriver.exe")

# 调用 WebDriver 对象的 get 方法,浏览器页面显示
wd.get("https://www.baidu.com")

# 关闭浏览器界面
wd.close()

版本变化,语法改变

  • 之前版本:
# 初始化代码 ....

wd.find_element_by_id('username').send_keys('byhy')
wd.find_element_by_class_name('password').send_keys('sdfsdf')
wd.find_element_by_tag_name('input').send_keys('sdfsdf')
wd.find_element_by_css_selector('button[type=submit]').click()
  • selenium 到版本 4 以后 find_element_by* 方法作为过期不赞成做法,运行有警告。
from selenium.webdriver.common.by import By
# 初始化代码 ....

wd.find_element(By.ID, 'username').send_keys('byhy')
wd.find_element(By.CLASS_NAME, 'password').send_keys('sdfsdf')
wd.find_element(By.TAG_NAME, 'input').send_keys('sdfsdf')
wd.find_element(By.CSS_SELECTOR,'button[type=submit]').click()

find_element | find_elements 区别

  • find_elements 选择的是符合条件的所有元素,如果没有符合条件的元素,返回空列表
  • find_element 选择的是符合条件的第一个元素,如果没有符合条件的元素,抛出NoSuchElementException 异常

获取指定元素

  • 获取标签中内容
# <span>狮子</span>
element.text
  • 获取标签属性值
# <a href="......"></a>
element.get_attribute("href")
  • 获取元素对应的 HTML
# 获取整个元素对应的 `HTML` 文本内容
element.get_attribute("otherHTML")
# 获取元素内部的HTML 文本内容
element.get_attribute("innerHTML")
  • 获取文本框中数据
element.get_attribute("value")
  • 获取元素文本内容
# 可以使用text 属性,获取元素展示在界面的文本内容。
# 注意:有时候,文本内容没有展示在界面上,或者没有完全展示在界面上。
element.get_attribute("innerText")
element.get_attribute("textContent")

输入框操作

  • send_keys
  1. 选择指定输入框
  2. 如果输入框中有提示字符,需要先 清除掉
  3. 调用方法填入对应内容
element = wd.find_element(By.ID, "input_1")
# 清除输入框中已有的字符串
element.clear()
# 输入新字符串
element.send_keys("....")

xpath 选择器

  • By.XPATH
base_url = "https://chromedriver.storage.googleapis.com/index.html"
# 创建 WebDriver 对象,使用 chrome 驱动
wd = webdriver.Chrome(r"C:\zhang\webDriver\chromedriver.exe")
wd.get(base_url)
wd.find_elements(By.XPATH, "//tr/td[2]/a")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python Selenium是一套完整的web应用程序测试系统,它包含了测试的录制、编写及运行和测试的并行处理。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可以用于任何支持JavaScript的浏览器上。Selenium支持的语言包括C#,Java,Perl,PHP,Python和Ruby。目前,Selenium Web驱动程序最受Python和C#欢迎。Selenium测试脚本可以使用任何支持的编程语言进行编码,并且可以直接在大多数现代Web浏览器中运行。\[2\] 如果你想在Python中使用Selenium,你需要先配置Python Selenium环境。你可以参考官方文档中的指南来进行配置。官方文档提供了详细的说明和示例代码,可以帮助你快速入门。你可以访问Selenium with Python的官方文档网址来获取更多信息。\[1\] 在使用Selenium时,你可以使用CSS选择器来定位元素。通过导入webdriver模块并创建一个webdriver对象,你可以使用find_element_by_css_selector方法来定位元素。例如,你可以使用driver.find_element_by_css_selector('p.content')来定位class为content的p元素。\[3\] #### 引用[.reference_title] - *1* *3* [Python Selenium 基础入门](https://blog.csdn.net/benzhujie1245com/article/details/117089767)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Python selenium基础用法详解](https://blog.csdn.net/m0_63794226/article/details/126447599)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值