Selenuim的新版本与旧版的许多语法都变了,在这里记录
这是selenuim的官方文档
安装chromedriver
- 打开chrome浏览器,输入chrome://version 查看chrome版本
- 找到对应的chromedriver,下载
https://chromedriver.storage.googleapis.com (Chrome 114之前的版本)
https://googlechromelabs.github.io/chrome-for-testing/#stable (Chrome 126,127,128) - chromedriver 解压到chrome同级目录下面
安装JDK和selenuim server
-
安装JDK 11, 这是JDK 各版本下载地址:https://www.java.com/releases/
安装好了,配置环境变量
JAVA_HOME为安装的JDK 11的路径。这里我的本地路径是 C:\Program Files\Java\jdk-11
-
安装Selenium Server, https://www.selenium.dev/downloads/
-
下载的Selenium Server文件放JDK11文件夹下面
-
对JDK11文件夹直接开cmd运行selenuim server,输入命令
java -jar selenium-server-4.23.0.jar standalone
注:遇到错误 has been compiled by a more recent version of the Java Runtime
我的问题是JDK版本问题
... has been compiled by a more recent version of the Java Runtime
(class file version 55.0), this version of the Java Runtime only
recognizes class file versions up to 52.0
需要至少55的版本,参见这个答案,所以我上面选择的是JDK 11(原本装的是JDK 8)。
- server运行后会有一个地址,记录下来放py代码里面用来启动driver
from selenium import webdriver
options = webdriver.ChromeOptions()
driver = webdriver.Remote(
command_executor='http://10.137.153.176:4444',
options=webdriver.ChromeOptions()
)
语法
定位要素的语法也变了,用
from selenium.webdriver.common.by import By
T1_btn = driver.find_element(By.XPATH, '/html/body/div[1]/div/header/form/div[2]/div/div/span[1]')
send_kys()不管用了,我用的
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
ActionChains(driver).key_down(Keys.CONTROL).send_keys('a').key_up(Keys.CONTROL).perform()
ActionChains(driver).key_down(Keys.BACK_SPACE).key_up(Keys.BACK_SPACE).perform()
ActionChains(driver).send_keys(‘00:00’).perform()