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 |
切换到当前页面的活动元素。 |
举例:
python
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")
# 获取页面标题和URL
print("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")
# 打印Cookies
print("Cookies:", driver.get_cookies())
finally:
driver.quit()
点评:
Selenium 的方法和属性可以灵活组合,实现复杂的网页自动化任务。