...

Selenium4与Selenium3区别-Selenium4新变化

1. 废弃find_element_by_xxx及fnd_elements_by_xxx这种定位方式

统一采用find_element(By.XXX, value) 和 find_elememts(By.XXX, value)这种方式

2. 增加相对定位的方式

  • above 元素上
  • below 元素下
  • to_left_of 元素左
  • to_right_of 元素右
  • near 附近
  • ...

3. 废弃 webdriver.Chrome() 第一个 executable_path参数

原来

dr = webdirver.Chrome('D:\\chromedriver.exe')

-> 现在

from selenium import webdriver
from selenium.webdriver.chrome.service import Service

service = ChromeService(executable_path=CHROMEDRIVER_PATH)
driver = webdriver.Chrome(Service(executable_path='D:\\chromedriver.exe'))

4. 新增 switch_to.new_window('tag') 和 switch_to.new_window('window') 来打开新的标签页或窗口

5. ActionChains类Api优化

  • move_to_element(element).click() 改为 click(element)
  • move_to_element(element).click_and_hold() 改为 click_and_hold(element)
  • ...

6. 浏览器选项,capbilities改动

参考:https://www.selenium.dev/zh-cn/documentation/webdriver/troubleshooting/upgrade_to_selenium_4/

  • version 改为 browserVersion
  • platform 改为 platformName

7. headless无界面使用方式变化

参考:https://www.selenium.dev/blog/2023/headless-is-going-away/

原来

from selenium import webdriver

options = webdriver.ChromeOptions()
options.headless = True
driver = webdriver.Chrome(options=options)
# ...

-> 现在

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--headless=new")
driver = webdriver.Chrome(options=options)
# ...
posted @ 2024-01-29 21:39  韩志超  阅读(142)  评论(0编辑  收藏  举报