2017-02-23 23 views
0

ウェブサイトを開いてドロップダウンから値を選択しようとしています。残念ながら、以下の機能せず、大規模な調査の後、私はあきらめておよそ午前: のPython 3.6.0 セレン3.0.2 のFirefox 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コードからすべて正しい値が値にドロップダウンを変更するために動作しないということである「30 Minutenをmindestens」。異なるWebサイトでも同じ問題が発生します。これはおそらくFirefoxの古いバージョンのために問題がありますか?

私はFirefox 51.0.1で自宅で試してみました。それは正しい値を選択しました。だから私は仕事で私のFirefoxを更新できないので、私は何をすることができますか?セレンやgeckodriverをダウングレードする必要がありますか?

+0

私が知っている限り、GeckodriverはFirefox 45と完全には互換性がありません。したがって、最も安全な方法は、Seleniumを2.53.1にダウングレードすることです。 –

+0

私はちょうど、これが私の問題を解決しました。私はちょうど私が正しく理解しているかどうか疑問に思っています:セレニウム2.53はGeckodriverを使用せず、セレニウム3.xは使用しますか?また、これを回答として追加して受け入れることができます。ありがとうございました!! – rashid

答えて

1

私が知っている限り、GeckodriverはFirefox 45と完全に互換性がありません。セレンを2.53.1にダウングレードするのが最も安全な方法です。

コメントからあなたの質問に答えてください。
少し複雑です。 Selenium 3はFirefoxと通信するためにGeckodriverを必要としますが、これはFirefox 47以降と完全に互換性があります(残念ながら完全な互換性リストは見つかりませんでした)。
Firefox 45を使用したい(または持っている)場合は、Geckodriverが必要なSeleniumバージョンをFirefoxで使用することはできません。
だから、FF45 ==なしGeckodriverはあなたより多くの情報を与えるかもしれない。3.

This post以下のいずれかのセレンのバージョンを==します。

+0

リンクは非常に有用です、ありがとうございます。 – rashid

関連する問題