Selenium WebDriver类的常用属性和方法汇总

WebDriver类是 Selenium WebDriver 提供的用于控制浏览器的核心类之一,它提供了许多属性和方法来管理浏览器会话、导航到不同的网页、定位和操作页面元素等。下面分别归纳其属性和方法:

**属性:**

  1. `capabilities`: 返回当前会话的浏览器的配置。

  2. `desired_capabilities`: 返回用于启动浏览器的配置。

  3. `session_id`: 返回当前会话的唯一标识符。

  4. `title`: 返回当前页面的标题。

  5. `current_url`: 返回当前页面的 URL。

  6. `page_source`: 返回当前页面的 HTML 源代码。

  7. `current_window_handle`: 返回当前窗口的句柄。

  8. `window_handles`: 返回所有窗口的句柄列表。

**方法:**

  1. `get(url)`: 打开指定 URL 的页面。

  2. `back()`: 在浏览器历史记录中后退一步。

  3. `forward()`: 在浏览器历史记录中前进一步。

  4. `refresh()`: 刷新当前页面。

  5. `close()`: 关闭当前窗口。

  6. `quit()`: 退出 WebDriver 并关闭所有窗口。

  7. `execute_script(script, *args)`: 在当前页面执行 JavaScript 脚本。

  8. `execute_async_script(script, *args)`: 在当前页面异步执行 JavaScript 脚本。

  9. `switch_to`: 切换到其他上下文,如 iframe 或窗口。

  10. `implicitly_wait(time_to_wait)`: 设置隐式等待时间。

  11. `set_page_load_timeout(time_to_wait)`: 设置页面加载超时时间。

  12. `set_script_timeout(time_to_wait)`: 设置执行 JavaScript 脚本的超时时间。

  13. `add_cookie(cookie_dict)`: 添加 cookie 到当前会话。

  14. `delete_cookie(name)`: 删除当前会话中的指定 cookie。

  15. `delete_all_cookies()`: 删除当前会话中的所有 cookie。

  16. `get_cookie(name)`: 获取当前会话中指定名称的 cookie。

  17. `get_cookies()`: 获取当前会话中的所有 cookie。

  18. `maximize_window()`: 最大化当前窗口。

  19. `minimize_window()`: 最小化当前窗口。

  20. `fullscreen_window()`: 将当前窗口设置为全屏。

  21. `back()`: 返回上一个页面。

  22. `forward()`: 前进到下一个页面。

  23. `find_element(by, value)`: 根据定位策略和值查找单个元素。

  24. `find_elements(by, value)`: 根据定位策略和值查找多个元素。

示例:

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()

try:
    driver.get("https://www.hao123.com/")
    # print('*****driver_type',type(driver)) # driver_type <class 'selenium.webdriver.chrome.webdriver.WebDriver'>
    input_elements = driver.find_elements(By.TAG_NAME, "input")
    # print('*****input_elements',type(input_elements)) # *****input_elements <class 'list'>
    for input_element in input_elements:
        print(input_element.get_attribute("outerHTML"))

    print('*'*35)

    lielements = driver.find_element(By.CSS_SELECTOR,"ul.boxhot li")
    for li in lielements:
        print(li.text)

    search_input = driver.find_element(By.CSS_SELECTOR, 'input[data-hook="searchInput"]')
    # print('*****search_input_type',type(search_input)) # search_input_type <class 'selenium.webdriver.remote.webelement.WebElement'>
    search_input.send_keys("Selenium库")
    search_button = driver.find_element(By.CSS_SELECTOR, 'input[data-hook="searchSubmit"]')
    search_button.click()
    handles = driver.window_handles
    print(type(handles))
    if len(handles) > 1:
        driver.switch_to.window(handles[1])
    # Wait for the search results to load completely
    WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'div[id="content_left"]')))
finally:
    driver.quit()

# In this updated version, we added the following imports:
# from selenium.webdriver.support.ui import WebDriverWait
# from selenium.webdriver.support import expected_conditions as EC
# We then added a WebDriverWait statement to wait for the presence of a specific element in the search results page:
# WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'div[class="search-list-item"]')))
# This statement waits for up to 10 seconds for an element with the CSS selector 'div[class="search-list-item"]' to appear on the page. 
# Once the element appears, the script continues to execute.

# Note that you may need to adjust the CSS selector or the wait time to suit your specific needs.
# (By.CSS_SELECTOR, 'div[id="content_left"]'), 

# selenium.webdriver.common.by.By 类的信息。这是 Selenium WebDriver 提供的一组支持的定位策略常量。
# 下面是这些常量的含义和用法:
# By.CLASS_NAME: 根据元素的 class name 属性进行定位。
# By.CSS_SELECTOR: 根据 CSS 选择器进行定位。
# By.ID: 根据元素的 id 属性进行定位。
# By.LINK_TEXT: 根据链接文本进行定位,适用于 <a> 标签。
# By.NAME: 根据元素的 name 属性进行定位。
# By.PARTIAL_LINK_TEXT: 根据链接文本的部分匹配进行定位。
# By.TAG_NAME: 根据元素的标签名进行定位。
# By.XPATH: 根据 XPath 表达式进行定位。
# 这些常量可用于 find_element() 和 find_elements() 方法的 locator 参数中,以指定要使用的定位策略。

以上是 `WebDriver` 类对象的主要属性和方法,它们允许你控制浏览器的行为,与页面进行交互,并执行自动化测试或网页爬取等任务。

相关推荐
山东布谷科技官方2 分钟前
布谷直播源码部署服务器关于数据库配置的详细说明
运维·服务器·数据库·直播系统源码·直播源码·直播系统搭建·直播软件开发
贩卖纯净水.3 分钟前
Chrome调试工具(查看CSS属性)
前端·chrome
爱吃喵的鲤鱼6 分钟前
linux进程的状态之环境变量
linux·运维·服务器·开发语言·c++
yyfhq36 分钟前
sdnet
python
测试199844 分钟前
2024软件测试面试热点问题
自动化测试·软件测试·python·测试工具·面试·职场和发展·压力测试
love_and_hope44 分钟前
Pytorch学习--神经网络--搭建小实战(手撕CIFAR 10 model structure)和 Sequential 的使用
人工智能·pytorch·python·深度学习·学习
栈老师不回家1 小时前
Vue 计算属性和监听器
前端·javascript·vue.js
前端啊龙1 小时前
用vue3封装丶高仿element-plus里面的日期联级选择器,日期选择器
前端·javascript·vue.js
荒Huang1 小时前
Linux挖矿病毒(kswapd0进程使cpu爆满)
linux·运维·服务器
一颗松鼠1 小时前
JavaScript 闭包是什么?简单到看完就理解!
开发语言·前端·javascript·ecmascript