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` 类对象的主要属性和方法,它们允许你控制浏览器的行为,与页面进行交互,并执行自动化测试或网页爬取等任务。

相关推荐
wxin_VXbishe11 分钟前
springboot合肥师范学院实习实训管理系统-计算机毕业设计源码31290
java·spring boot·python·spring·servlet·django·php
ITenderL16 分钟前
Python学习笔记-函数
python·学习笔记
zmjia11119 分钟前
全流程Python编程、机器学习与深度学习实践技术应用
python·深度学习·机器学习
楚灵魈23 分钟前
[Linux]从零开始的网站搭建教程
linux·运维·服务器
小小不董25 分钟前
《Linux从小白到高手》理论篇:深入理解Linux的网络管理
linux·运维·服务器·数据库·php·dba
豆豆43 分钟前
为什么用PageAdmin CMS建设网站?
服务器·开发语言·前端·php·软件构建
_.Switch1 小时前
Python机器学习:自然语言处理、计算机视觉与强化学习
python·机器学习·计算机视觉·自然语言处理·架构·tensorflow·scikit-learn
JUNAI_Strive_ving1 小时前
番茄小说逆向爬取
javascript·python
彤银浦1 小时前
python学习记录7
python·学习
DY009J1 小时前
深度探索Kali Linux的精髓与实践应用
linux·运维·服务器