sudo apt install firefox-esr
wget https://github.com/mozilla/geckodriver/releases/download/v0.29.0/geckodriver-v0.29.0-linux32.tar.gz
tar -xzvf geckodriver-v0.29.0-linux32.tar.gz
sudo cp geckodriver /usr/bin/geckodriver
注意,使用selenium中报出selenium.common.exceptions.WebDriverException: Message : ‘geckodriver’ executable needs to be in PATH是因为未安装浏览器跟geckodriver控件,按上述操作安装即可
出现selenium.common.exceptions.WebDriverException: Message : connection refused说明你下载的geckodriver不是最新版本,去github找一下最新版本就好
基本打开网页操作:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("https://www.baidu.com/")
Firefox设置自动保存压缩文件:(在浏览器中设置是无效的,用脚本打开的没有那些你自己设置的偏好)
firefox_profile = webdriver.FirefoxProfile()
firefox_profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream, application/vnd.ms-excel, text/csv, application/zip")
Firefox设置在后台运行:
firefox_options = webdriver.FirefoxOptions()
firefox_options.add_argument('--headless')
driver = webdriver.Firefox(firefox_profile = firefox_profile, options = firefox_options)
driver.get(url)
用VS Code调试的时候,使用Ctrl + F5快捷键运行会在结束的时候自动退出火狐。而用右上角的小绿三角run python file in terminal就不会在程序运行结束后自动关闭了。这时候就需要使用下面代码进行关闭操作
driver.quit()#退出浏览器
windows = driver.window_handles
for window in windows:
if u_wanna_close_it:
driver.switch_to.window(window)#切换到想退出的页面
driver.close()#关闭当前页面
各种寻键操作:
driver.find_element_by_id("button_u_wanna_click").click()
driver.find_element_by_link_text("ur_target_button_text").click()
target_btns = driver.find_elements('tag name', 'button')
for target_btn in target_btns:
if target_btn.get_attribute("class") == "some_class_of_ur_target_button":
if target_btn.text == "ur_target_button_text":
target_btn.click()
break
Cheers