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