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)
# ...