Selenium 是一个用于自动化 Web 浏览器交互的工具,它支持多种语言,包括 Python。在 Python 中,Selenium 通常与 WebDriver 一起使用,WebDriver 是一个接口,允许你与浏览器进行通信。

下面是一些 Selenium 在 Python 中的常用语法和示例:

  1. 导入必要的库
pythonfrom selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
  1. 启动浏览器并打开页面
pythondriver = webdriver.Chrome()  # 假设你安装了 ChromeDriver
driver.get("https://www.example.com")
  1. 查找元素
python# 通过 ID 查找
element_by_id = driver.find_element(By.ID, "element_id")

# 通过 Name 查找
element_by_name = driver.find_element(By.NAME, "element_name")

# 通过 Class Name 查找
element_by_class_name = driver.find_element(By.CLASS_NAME, "element_class")

# 通过 Tag Name 查找
element_by_tag_name = driver.find_element(By.TAG_NAME, "element_tag")

# 通过 XPath 查找
element_by_xpath = driver.find_element(By.XPATH, "//xpath/expression")

# 通过 CSS Selector 查找
element_by_css_selector = driver.find_element(By.CSS_SELECTOR, "css_selector")
  1. 与元素交互
python# 点击元素
element.click()

# 输入文本
element.send_keys("Hello, World!")

# 清除文本
element.clear()

# 提交表单
element.submit()
  1. 等待元素出现
python# 显式等待,等待特定元素可见
wait = WebDriverWait(driver, 10)  # 最多等待 10 秒
element = wait.until(EC.visibility_of_element_located((By.ID, "element_id")))

# 隐式等待,设置全局等待时间
driver.implicitly_wait(10)  # 设置全局等待时间为 10 秒
  1. 关闭浏览器和窗口
python# 关闭当前窗口
driver.close()

# 关闭所有窗口,并退出浏览器
driver.quit()
  1. 处理多个窗口
python# 打开新窗口
driver.execute_script("window.open('');")

# 切换到新窗口
driver.switch_to.window(driver.window_handles[-1])

# 切换回主窗口
driver.switch_to.window(driver.window_handles[0])
  1. 滚动页面
python# 滚动到页面底部
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

# 滚动到指定位置
driver.execute_script("window.scrollTo(x_coordinate, y_coordinate);")
  1. 获取页面标题、URL 等
python# 获取页面标题
title = driver.title

# 获取当前页面的 URL
url = driver.current_url
  1. 处理弹窗
python# 切换到 alert
alert = driver.switch_to.alert

# 获取 alert 文本
text = alert.text

# 接受 alert
alert.accept()

# 取消 alert
alert.dismiss()
最后修改:2024 年 06 月 03 日
如果觉得我的文章对你有用,请随意赞赏