我想打開一個網站並從下拉列表中選擇一個值。不幸的是,下面不工作,經過廣泛的研究,我打算放棄: 的Python 3.6.0 硒3.0.2 火狐45.7.0Python,Firefox和Selenium 3:從下拉列表中選擇值不適用於Firefox 45
我的代碼是(不能因公司章程更新):
from selenium import webdriver
from selenium.webdriver.firefox.webdriver import FirefoxProfile
from selenium.webdriver.support.ui import Select
#set profile for firefox
profile = FirefoxProfile("C:\\Users\\Rash\\Documents\\PythonScripts\\FirefoxProfileCopies\\u4gehg17.default.copy")
profile.set_preference("browser.download.folderList", 2)
profile.set_preference("browser.download.manager.showWhenStarting", False)
profile.set_preference("browser.download.dir", "C:\\Users\\Rash\\Desktop\\TestDownloadFolderSelenium") #set directory for download
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", 'application/vnd.ms-excel')
#start a browser session
browser = webdriver.Firefox(profile)
# open the ProCon page
browser.get("http://reiseauskunft.bahn.de/bin/query.exe/dn?getstop=1&dbkanal_008=L01_S01_D001_KLR0011_konzernportal_LZ03")
select1 = Select(browser.find_element_by_name("REQ0HafasChangeTime"))
select1.select_by_visible_text("mindestens 30 Minuten")
for row in select1.options:
print(row.text)
奇怪的是,循環打印從正確的下拉菜單中所有的正確的價值觀,但select
代碼不起作用的下拉菜單更改爲值「mindestens 30 Minuten」。同樣的問題也發生在不同的網站上。這可能是由於舊版本的Firefox的問題?
我在家用Firefox 51.0.1試過,它工作!它選擇了正確的值。所以我現在想知道,因爲我無法在工作中更新我的Firefox,我該怎麼辦?我需要降級硒還是geckodriver?
據我所知Geckodriver不完全兼容Firefox 45.所以你最安全的選擇是將Selenium降級到2.53.1。 –
我剛剛做了,這解決了我的問題。我只是想知道我是否理解正確:Selenium 2.53不使用Geckodriver,但是Selenium 3.x可以嗎?也請將此添加爲答案,以便我可以接受。謝謝!! – rashid