Selenium环境安装与使用

Selenium

官方网站: https://www.selenium.dev/

简介:

  1. 用于web浏览器测试的工具;
  2. 支持的浏览器包括IE,Firefox,Safari,Chrome,Edge等;
  3. 使用简单,可使用Java,Python等多种语言编写用例脚本;
  4. 主要由三个工具构成:WebDriver,IDE,Grid。

架构图

环境配置

  1. 准备好Python或Java环境;
  2. 准备好selenium依赖;
  3. driver的下载与配置(Mac与Windows不同);
  4. 在代码中import对应的依赖。

安装(针对Python)
pip install selenium

Driver的下载与配置

官方链接:
https://www.selenium.dev/documentation/en/webdriver/driver_requirements/
配置:

  1. 配置 driver 的环境变量
  2. 重启命令行工具,验证是否配置成功

20231203最新地址:Chrome for Testing availability

chromedriver的下载与配置

淘宝镜像: CNPM Binaries Mirror
确定与浏览器匹配的driver版本,根据使用的操作系统下载对应的Chromedriver。
Windows详细配置步骤: Selenium环境安装配置
Windows验证chromedriver配置是否成功:

  1. 重启命令行,输入:chromedriver --version
  2. 出现chromedriver版本信息,则配置成功:

运行实例:

实例代码:

from selenium import webdriver
import time

# 打开浏览器
def open_browers():
    driver = webdriver.Chrome()
    driver.get("https://ceshiren.com/t/topic/24679")
    time.sleep(2)
    # 刷新浏览器
    driver.refresh()
    # 通过get跳转到baidu
    driver.get("https://www.baidu.com/")
    # 退回操作:返回百度之前的页面
    driver.back()
    # 最大化
    driver.maximize_window()
    # 最小化
    driver.minimize_window()
    #关闭窗口
    driver.quit()

if __name__ == '__main__':
    open_browers()

geckodriver的下载与配置

淘宝镜像: CNPM Binaries Mirror
没有chromedriver类似的对应关系,默认下载最新的driver版本;根据使用的操作系统下载相应的geckodriver。
Windows详细配置步骤: 与谷歌浏览器相同。
Windows验证geckodriver配置是否成功: 输入geckodriver --version

运行实例:

实例代码:

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("https://ceshiren.com/")
driver.quit()

SeleniumIDE的下载安装

Chrome插件https://chrome.google.com/webstore/detail/selenium-ide/mooikfkahbdckldjjndioackbalphokd
Firefox插件Selenium IDE – Get this Extension for :fox_face: Firefox (en-US)
github releasehttps://github.com/SeleniumHQ/selenium-ide/releases
其它版本Selenium IDE version history - 1 version – Add-ons for Firefox (en-GB)
注意:Chrome插件在国内无法下载(需要翻墙或者代理),Firefox可以直接下载。

SeleniumIDE的启动

  • 安装完成后,通过在浏览器的菜单栏中点击它的图标来启动它;
  • 如果没看到图标,首先确保是否安装了Selenium IDE扩展插件;
  • 通过以下链接访问所有插件:
    • Chrome: chrome://extensions
    • Firefox: about:addons

SeleniumIDE的常用功能

①新建、保存、打开
②开始和停止录制
③运行8中的所有的实例
④运行单个实例
⑤调试模式
⑥调整案例的运行速度
⑦要录制的网址
⑧实例列表
⑨动作、目标、值
⑩对单条命令的解释
⑪运行日志

录制实例:

导出代码:

# Generated by Selenium IDE
import pytest
import time
import json
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

class TestDefaultSuite():
  def setup_method(self, method):
    self.driver = webdriver.Chrome()
    self.vars = {}
  
  def teardown_method(self, method):
    self.driver.quit()
  
  def test_baidu(self):
    self.driver.get("https://www.baidu.com/")
    self.driver.set_window_size(958, 680)
    self.driver.find_element(By.ID, "kw").click()
    self.driver.find_element(By.ID, "kw").click()
    self.driver.find_element(By.ID, "kw").send_keys("python")
    self.driver.find_element(By.CSS_SELECTOR, ".bdsug-s").click()
    element = self.driver.find_element(By.ID, "su")
    actions = ActionChains(self.driver)
    actions.move_to_element(element).perform()
    self.driver.find_element(By.ID, "su").click()
    self.driver.find_element(By.ID, "su").click()
    element = self.driver.find_element(By.CSS_SELECTOR, "body")
    actions = ActionChains(self.driver)
    actions.move_to_element(element, 0, 0).perform()