selenium v3版本与v4版本差异

1.selenium v3版本和v4版本的数据定位方式有所差异

v3版本

driver.find_element_by_class_name(“className”)
driver.find_element_by_css_selector(“.className”)
driver.find_element_by_id(“elementId”)
driver.find_element_by_link_text(“linkText”)
driver.find_element_by_name(“elementName”)
driver.find_element_by_partial_link_text(“partialText”)
driver.find_element_by_tag_name(“elementTagName”)
driver.find_element_by_xpath(“xpath”)

v4版本
from selenium.webdriver.common.by import By
driver.find_element(By.CLASS_NAME,”xx”)
driver.find_element(By.CSS_SELECTOR,”xx”)
driver.find_element(By.ID,”xx”)
driver.find_element(By.LINK_TEXT,”xx”)
driver.find_element(By.NAME,”xx”)
driver.find_element(By.PARITIAL_LINK_TEXT,”xx”)
driver.find_element(By.TAG_NAME,”xx”)
driver.find_element(By.XPATH,”xx”)

2.启动路径差异

v3版本
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_experimental_option(“excludeSwitches”, [“enable-automation”])
options.add_experimental_option(“useAutomationExtension”, False)
driver = webdriver.Chrome(executable_path=CHROMEDRIVER_PATH, options=options)

v4版本
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
options = webdriver.ChromeOptions()
options.add_experimental_option(“excludeSwitches”, [“enable-automation”])
options.add_experimental_option(“useAutomationExtension”, False)
service = ChromeService(executable_path=CHROMEDRIVER_PATH) # 变化在这里
driver = webdriver.Chrome(service=service, options=options) # 变化在这里 传递值变为对象

3.相对定位功能

abovebelowtoLeftOftoRightOfnear
元素上方元素下方元素左边元素右边附近
from selenium.webdriver.common.by import By
from selenium.webdriver.support.relative_locator import locate_with
 
passwordField = driver.find_element(By.ID, "password")
emailAddressField = driver.find_element(locate_with(By.TAG_NAME,"input").above(passwordField))