selenium的升级与降级
背景
selenium3 和 seleium4的版本变化挺大的
清明加班时 同事说可以升级,我直接就用上了最新版本
但是给我的测试demo 发现会报错
原来 4 比 3 的很多语法都发生了变化.
可能无法直接使用.
虽然感觉直接升级版本是最好不过的, 因为升级了新版本
可能性能和特性要表现的好一些
但是想为了能够节约资产投资, 还是减少一些麻烦.
思路
降级 selenium 的版本, 使之能够兼容.
脚本为:
/opt/python3/bin/pip3 uninstall urllib3
/opt/python3/bin/pip3 install urllib3==1.26.18
/opt/python3/bin/pip3 uninstall selenium
/opt/python3/bin/pip3 install selenium==3.141.0
说明
selenium3 不能使用 urllib3 较新的版本
会报错为:
File "xxx/site-packages/urllib3/util/timeout.py", line 152, in _validate_timeout
raise ValueError(
ValueError: Timeout value connect was <object object at 0x7f944cb006a0>,
but it must be an int, float or None.
所以必须也得同时降级.
测试脚本-selenimum3
cat >/demo.py <<EOF
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
chrome_options = Options()
chrome_options.add_argument("--headless") # 在无头模式下运行
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument("--disable-dev-shm-usage")
driver = webdriver.Chrome(options=chrome_options, executable_path='/opt/python3/bin/chromedriver')
driver.get("https://www.baidu.com")
time.sleep(5.0)
driver.save_screenshot('/baidu_screenshot.png')
driver.quit()
EOF
/opt/python3/bin/python3 /demo.py
测试脚本-selenium4
cat > /demo.py <<EOF
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
import time
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-gpu")
chrome_options.add_argument("--disable-dev-shm-usage")
chrome_options.add_argument("--window-size=1920,1080")
s = Service('/opt/python3/bin/chromedriver')
driver = webdriver.Chrome(service=s, options=chrome_options)
driver.get("https://www.baidu.com")
time.sleep(5)
driver.save_screenshot('/baidu_screenshot.png')
driver.quit()
EOF
/opt/python3/bin/python3 /demo.py