带你认识Selenium函数

发布于:2024-04-27 ⋅ 阅读:(27) ⋅ 点赞:(0)

Selenium除了用于Web应用程序的测试外,还可以执行许多自动化操作。以下是一些Selenium可以实现的功能,并附带相应的代码示例来详细说明:

  1. 自动化操作

使用Selenium,我们可以模拟用户的行为,如点击、输入、滚动等。


python复制代码

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
# 初始化浏览器驱动
driver = webdriver.Chrome()
# 打开网页
driver.get('https://www.example.com')
# 查找元素并点击
search_box = driver.find_element(By.ID, 'search-box')
search_box.send_keys('Selenium')
search_box.send_keys(Keys.RETURN)
# 关闭浏览器
driver.quit()
  1. 跨浏览器测试

Selenium支持多种浏览器,只需更换对应的WebDriver即可。


python复制代码

# 对于Firefox浏览器
driver = webdriver.Firefox()
# 对于Chrome浏览器
driver = webdriver.Chrome()
# 对于Edge浏览器
driver = webdriver.Edge()
# ... 以此类推,根据需要选择浏览器
  1. 截图功能

Selenium允许我们捕获当前页面的截图。


python复制代码

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
# 初始化浏览器驱动
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
# 打开网页
driver.get('https://www.example.com')
# 截图
driver.save_screenshot('screenshot.png')
# 关闭浏览器
driver.quit()
  1. 执行JavaScript脚本

Selenium提供了执行JavaScript代码的方法。


python复制代码

from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.example.com')
# 执行JavaScript脚本
driver.execute_script("alert('Hello, Selenium!')")
# 关闭浏览器
driver.quit()
  1. 表单验证测试

Selenium可以模拟表单提交,并检查验证结果。


python复制代码

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException
driver = webdriver.Chrome()
driver.get('https://www.example.com/login')
# 输入用户名和密码
username_input = driver.find_element(By.ID, 'username')
username_input.send_keys('my_username')
password_input = driver.find_element(By.ID, 'password')
password_input.send_keys('my_password')
# 提交表单
submit_button = driver.find_element(By.ID, 'submit')
submit_button.click()
try:
# 检查是否出现错误消息
error_message = driver.find_element(By.ID, 'error-message')
print("Error:", error_message.text)
except NoSuchElementException:
print("Form submitted successfully!")
# 关闭浏览器
driver.quit()
  1. 等待AJAX请求完成

Selenium提供了显式等待(Explicit Waits)来处理AJAX请求。


python复制代码

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get('https://www.example.com/ajax-page')
# 等待某个元素出现
wait = WebDriverWait(driver, 10)
element = wait.until(EC.visibility_of_element_located((By.ID, 'my-element')))
# 执行后续操作
print(element.text)
# 关闭浏览器
driver.quit()
  1. 与其他测试框架集成

Selenium可以很容易地与unittest、pytest等测试框架集成,实现测试用例的编写和运行。

以pytest为例,你可以编写如下的测试用例:


python复制代码

import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
@pytest.fixture(scope="module")
def driver(request):
wd = webdriver.Chrome()
wd.implicitly_wait(10)
request.addfinalizer(wd.quit)
return wd
def test_example_com(driver):
driver.get("https://www.example.com")
assert "Example Domain"

网站公告

今日签到

点亮在社区的每一天
去签到