• 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)`: 根据定位策略和值查找多个元素。

    示例:

    1. from selenium import webdriver
    2. from selenium.webdriver.common.by import By
    3. from selenium.webdriver.support.ui import WebDriverWait
    4. from selenium.webdriver.support import expected_conditions as EC
    5. driver = webdriver.Chrome()
    6. try:
    7. driver.get("https://www.hao123.com/")
    8. # print('*****driver_type',type(driver)) # driver_type
    9. input_elements = driver.find_elements(By.TAG_NAME, "input")
    10. # print('*****input_elements',type(input_elements)) # *****input_elements
    11. for input_element in input_elements:
    12. print(input_element.get_attribute("outerHTML"))
    13. print('*'*35)
    14. lielements = driver.find_element(By.CSS_SELECTOR,"ul.boxhot li")
    15. for li in lielements:
    16. print(li.text)
    17. search_input = driver.find_element(By.CSS_SELECTOR, 'input[data-hook="searchInput"]')
    18. # print('*****search_input_type',type(search_input)) # search_input_type
    19. search_input.send_keys("Selenium库")
    20. search_button = driver.find_element(By.CSS_SELECTOR, 'input[data-hook="searchSubmit"]')
    21. search_button.click()
    22. handles = driver.window_handles
    23. print(type(handles))
    24. if len(handles) > 1:
    25. driver.switch_to.window(handles[1])
    26. # Wait for the search results to load completely
    27. WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'div[id="content_left"]')))
    28. finally:
    29. driver.quit()
    30. # In this updated version, we added the following imports:
    31. # from selenium.webdriver.support.ui import WebDriverWait
    32. # from selenium.webdriver.support import expected_conditions as EC
    33. # We then added a WebDriverWait statement to wait for the presence of a specific element in the search results page:
    34. # WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, 'div[class="search-list-item"]')))
    35. # 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.
    36. # Once the element appears, the script continues to execute.
    37. # Note that you may need to adjust the CSS selector or the wait time to suit your specific needs.
    38. # (By.CSS_SELECTOR, 'div[id="content_left"]'),
    39. # selenium.webdriver.common.by.By 类的信息。这是 Selenium WebDriver 提供的一组支持的定位策略常量。
    40. # 下面是这些常量的含义和用法:
    41. # By.CLASS_NAME: 根据元素的 class name 属性进行定位。
    42. # By.CSS_SELECTOR: 根据 CSS 选择器进行定位。
    43. # By.ID: 根据元素的 id 属性进行定位。
    44. # By.LINK_TEXT: 根据链接文本进行定位,适用于 标签。

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

  • 相关阅读:
    vue2 render属性调用createElement()方法插入多级元素举例
    java 多线程()—— 线程同步=队列+锁
    Hbase,Phoenix,hive,Redis 内存数据库,220905,,
    SpringCloud-nacos整合seata
    苹果ios签名证书什么意思怎么弄怎么购买ios签名工具签名有哪几种
    Jsoup | Document | HTML解析器
    jni学习2.c++调用java函数
    java 常见api Arrays类
    百乐钢笔维修(官方售后,全流程)
    【AXI】解读AXI协议乱序机制
  • 原文地址:https://blog.csdn.net/book_dw5189/article/details/136753564