Selenium
是一个用于自动化 Web 浏览器交互的工具,它支持多种语言,包括 Python。在 Python 中,Selenium 通常与 WebDriver 一起使用,WebDriver 是一个接口,允许你与浏览器进行通信。
下面是一些 Selenium 在 Python 中的常用语法和示例:
- 导入必要的库
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
- 启动浏览器并打开页面
pythondriver = webdriver.Chrome() # 假设你安装了 ChromeDriver
driver.get("https://www.example.com")
- 查找元素
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")
- 与元素交互
python# 点击元素
element.click()
# 输入文本
element.send_keys("Hello, World!")
# 清除文本
element.clear()
# 提交表单
element.submit()
- 等待元素出现
python# 显式等待,等待特定元素可见
wait = WebDriverWait(driver, 10) # 最多等待 10 秒
element = wait.until(EC.visibility_of_element_located((By.ID, "element_id")))
# 隐式等待,设置全局等待时间
driver.implicitly_wait(10) # 设置全局等待时间为 10 秒
- 关闭浏览器和窗口
python# 关闭当前窗口
driver.close()
# 关闭所有窗口,并退出浏览器
driver.quit()
- 处理多个窗口
python# 打开新窗口
driver.execute_script("window.open('');")
# 切换到新窗口
driver.switch_to.window(driver.window_handles[-1])
# 切换回主窗口
driver.switch_to.window(driver.window_handles[0])
- 滚动页面
python# 滚动到页面底部
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
# 滚动到指定位置
driver.execute_script("window.scrollTo(x_coordinate, y_coordinate);")
- 获取页面标题、URL 等
python# 获取页面标题
title = driver.title
# 获取当前页面的 URL
url = driver.current_url
- 处理弹窗
python# 切换到 alert
alert = driver.switch_to.alert
# 获取 alert 文本
text = alert.text
# 接受 alert
alert.accept()
# 取消 alert
alert.dismiss()
1 条评论