惊艳的Selenium技巧:探索基础和动作链的奇妙世界

1.Selenium简介

selenium可以帮助我们便捷的获取网站中动态加载的数据,也可以便捷实现模拟登录;
selenium是基于浏览器自动化的一个模块,使用可以操作浏览器来帮我们实现一些自动化的操作!
Selenium 是一个广泛使用的自动化测试工具,用于测试 Web 应用程序的功能和兼容性。它提供了一组功能强大的工具和库,可以模拟用户在浏览器中的操作,并对应用程序进行自动化测试。

以下是 Selenium 的一些重要特点和组成部分:

  1. 多浏览器支持:Selenium 支持多种主流浏览器,包括 Chrome、Firefox、Safari、Edge 等。这意味着您可以使用相同的测试脚本在不同的浏览器中执行测试,以验证应用程序的兼容性和一致性。

  2. 多语言支持:Selenium 提供了多种编程语言的支持,包括 Java、Python、C#、JavaScript 等。这使得开发人员可以使用自己熟悉的语言编写测试脚本,并灵活地与其他工具和框架进行集成。

  3. 元素定位:Selenium 提供了丰富的元素定位方法,可以通过 ID、类名、标签名、XPath、CSS 选择器等方式定位页面上的元素。这使得测试人员可以准确地操作和验证页面上的各个元素。

  4. 页面交互和操作:Selenium 可以模拟用户在浏览器中的各种操作,如点击、输入、选择、提交表单等。这使得测试人员可以编写测试脚本来模拟用户在应用程序中的交互,以验证应用程序的功能和用户体验。

  5. 并发测试:Selenium 支持并发测试,可以同时运行多个测试用例或测试套件,提高测试效率和速度。

  6. 浏览器控制:Selenium 可以完全控制浏览器的行为,如打开新窗口、切换窗口、处理弹窗、处理 Cookies 等。这使得测试人员可以模拟各种场景和情况,进行更全面和复杂的测试。

总体而言,Selenium 是一个功能强大、灵活且广泛使用的自动化测试工具,可以帮助开发人员和测试人员进行 Web 应用程序的自动化测试。无论是测试 Web 应用程序的功能、兼容性还是进行数据采集和挖掘,Selenium 都是一个重要的工具。

2.Selenium初试

1.环境安装

pip install selenium

2.下载浏览器驱动程序

下载驱动程序一定要和浏览器版本匹配!

驱动器下载路径:https://chromedriver.storage.googleapis.com/index.html

扫描二维码关注公众号,回复: 17155316 查看本文章

3.小试牛刀

from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from time import sleep
# 环境搭建
from selenium.webdriver import Chrome
# 创建一个Service对象
from webdriver_manager.chrome import ChromeDriverManager
service = Service(ChromeDriverManager().install())
web = Chrome(service=service)
# 向淘宝发送一个请求
web.get("https://www.taobao.com")
# 执行一组js程序 向下滚动
web.execute_script('window.scrollTo(0,document.body.scrollHeight)')
# 实现标签定位
search_input = web.find_element(By.ID, 'q')
# 标签的交互
search_input.send_keys('区块链入门')
# 定位搜索按钮
btn = web.find_element(By.CLASS_NAME, 'btn-search')
# 点击按钮
btn.click()
web.get('http://www.baidu.com')
sleep(2)
# 回退
web.back()
sleep(2)
web.forward()
sleep(5)
web.quit()

编写基于浏览器自动化的操作代码:

​ --发起请求:get(url)

​ --标签定位:find系列的方法

​ --标签交互:send_keys(‘xxx’)

​ --执行js程序:execute_script(‘jsCode’)

​ --前进,后退:forward()、back()

​ --关闭浏览器:quit()

3.iframe处理+动作链

当页面中存在 iframe 时,需要先切换到 iframe 中才能对其中的元素进行操作。
当处理 iframe(内嵌框架)和执行动作链(ActionChains)时,可以按照以下步骤在 Python 中使用 Selenium:

  1. 处理 iframe:
    在 Selenium 中,需要先切换到 iframe 才能对其中的元素进行操作。可以使用 switch_to.frame() 方法来切换到指定的 iframe。例如:
   from selenium import webdriver
   driver = webdriver.Chrome()
   iframe_element = driver.find_element_by_tag_name("iframe")
   driver.switch_to.frame(iframe_element)

在切换到 iframe 后,可以使用常规的 Selenium 方法来定位和操作 iframe 中的元素。

  1. 执行动作链:动作链(ActionChains)是一系列连续的动作,可以模拟用户在页面上的复杂操作,如鼠标移动、拖拽、键盘操作等。Selenium 提供了 ActionChains 类来支持动作链的执行。动作链(ActionChains)是一系列连续的动作,可以模拟用户在页面上的复杂操作,如鼠标移动、拖拽、键盘操作等。在 Python 中,可以使用 ActionChains 类来执行动作链。以下是一个示例,展示了如何使用动作链来模拟鼠标移动和点击操作:
from selenium import webdriver
   from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome()
   actions = ActionChains(driver)
   element = driver.find_element_by_id("elementId")
   actions.move_to_element(element).click().perform()

在上述示例中,首先导入 webdriverActionChains 类。然后,创建一个 ActionChains 对象,并使用 move_to_element() 方法将鼠标移动到指定元素上,接着使用 click() 方法模拟点击操作,最后使用 perform() 方法执行动作链。
根据具体需求,可以使用其他的 ActionChains 方法,如 drag_and_drop()send_keys()double_click() 等来执行不同类型的动作。

猜你喜欢

转载自blog.csdn.net/qq_51447436/article/details/133966052