1. 浏览器控制相关方法
方法/属性 | 功能说明 |
---|
driver.get(url) | 打开指定 URL。 |
driver.refresh() | 刷新当前页面。 |
driver.back() | 模拟浏览器后退操作。 |
driver.forward() | 模拟浏览器前进操作。 |
driver.close() | 关闭当前窗口。 |
driver.quit() | 关闭整个浏览器和 WebDriver 会话。 |
driver.execute_script(js) | 执行 JavaScript 脚本,可用于操作页面元素或获取页面内容。 |
2. 网页信息获取
方法/属性 | 功能说明 |
---|
driver.page_source | 获取当前页面的 HTML 源代码。 |
driver.title | 获取当前页面的标题。 |
driver.current_url | 获取当前页面的 URL。 |
driver.get_cookies() | 获取当前页面所有 Cookies,以列表形式返回。 |
driver.get_cookie(name) | 根据名称获取特定的 Cookie。 |
3. 页面元素查找与操作
查找元素方法
方法/属性 | 功能说明 |
---|
driver.find_element(By.ID, id_) | 根据 ID 查找单个元素。 |
driver.find_element(By.NAME, name) | 根据 Name 属性查找单个元素。 |
driver.find_element(By.CLASS_NAME, class_name) | 根据类名查找单个元素。 |
driver.find_element(By.TAG_NAME, tag_name) | 根据标签名查找单个元素。 |
driver.find_element(By.CSS_SELECTOR, selector) | 根据 CSS 选择器查找单个元素。 |
driver.find_element(By.XPATH, xpath) | 根据 XPath 表达式查找单个元素。 |
driver.find_elements(...) | 与上述方法类似,但返回多个符合条件的元素(列表)。 |
元素操作方法
方法/属性 | 功能说明 |
---|
element.click() | 点击页面元素。 |
element.send_keys(keys) | 向元素中输入文本(例如表单输入框)。 |
element.clear() | 清空输入框内容。 |
element.text | 获取元素的文本内容。 |
element.get_attribute(name) | 获取元素的属性值,例如 href 、src 等。 |
element.is_displayed() | 检查元素是否可见,返回布尔值。 |
element.is_enabled() | 检查元素是否可用(启用状态),返回布尔值。 |
element.is_selected() | 检查元素是否被选中(如复选框、单选框等)。 |
4. 窗口与框架操作
方法/属性 | 功能说明 |
---|
driver.window_handles | 获取所有打开窗口的句柄(列表)。 |
driver.current_window_handle | 获取当前窗口的句柄。 |
driver.switch_to.window(handle) | 切换到指定窗口句柄。 |
driver.switch_to.frame(frame) | 切换到指定的 iframe 框架。 |
driver.switch_to.parent_frame() | 返回到父框架。 |
driver.switch_to.default_content() | 返回到主页面内容。 |
5. 等待操作
方法/属性 | 功能说明 |
---|
driver.implicitly_wait(seconds) | 设置隐式等待时间,在查找元素时会等待指定秒数直到找到元素。 |
WebDriverWait(driver, timeout).until(condition) | 显式等待,等待某个条件满足。 |
6. 警告框操作
方法/属性 | 功能说明 |
---|
driver.switch_to.alert | 切换到警告框(Alert)。 |
alert.accept() | 接受警告框。 |
alert.dismiss() | 取消警告框。 |
alert.text | 获取警告框中的文本。 |
alert.send_keys(keys) | 向警告框输入文本(部分情况下支持)。 |
7. 其他实用操作
方法/属性 | 功能说明 |
---|
driver.set_window_size(width, height) | 设置窗口大小。 |
driver.maximize_window() | 最大化浏览器窗口。 |
driver.save_screenshot(file_path) | 截图保存为文件,便于调试。 |
driver.switch_to.active_element | 切换到当前页面的活动元素。 |
举例:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options# 初始化无界面浏览器
options = Options()
options.add_argument("--headless")
driver = webdriver.Chrome(options=options)try:# 打开百度driver.get("https://www.baidu.com")# 获取页面标题和URLprint("Title:", driver.title)print("URL:", driver.current_url)# 查找搜索框并输入内容search_box = driver.find_element(By.ID, "kw")search_box.send_keys("Selenium")# 截图driver.save_screenshot("baidu.png")# 打印Cookiesprint("Cookies:", driver.get_cookies())finally:driver.quit()
点评:
Selenium 的方法和属性可以灵活组合,实现复杂的网页自动化任务。