2017-09-15 2 views
0

セレンのダウンロードがうまくいかないのはなぜですか?私は、概念実証のように次のコードを使用して、(その内容を検証するために)何かをダウンロードしようとセレンと

from selenium import webdriver 

profile = webdriver.FirefoxProfile() 
#Set Location to store files after downloading. 
profile.set_preference("browser.download.dir", "/tmp") 
profile.set_preference("browser.download.folderList", 2) 

#Set Preference to not show file download confirmation dialogue using MIME types Of different file extension types. 
#profile.set_preference("browser.helperApps.neverAsk.saveToDisk", 
#      "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;") 
profile.set_preference("browser.download.manager.showWhenStarting", False) 
profile.set_preference("pdfjs.disabled", True) 
profile.set_preference("browser.helperApps.neverAsk.saveToDisk","application/zip") 
profile.set_preference("plugin.disable_full_page_plugin_for_types", "application/zip") 

browser = webdriver.Firefox(profile) 
browser.implicitly_wait(10) 
browser.get('https://www.thinkbroadband.com/download') 
time.sleep(15) 
elem = browser.find_element_by_xpath('//a[@href="http://ipv4.download.thinkbroadband.com/5MB.zip"]') 
elem.click() 
time.sleep(15) 

はしかし、何も「起こらない」(つまり、ダウンロードが実行されません)、エラーメッセージも表示されません。ダウンロードリンクを手動でクリックすると、テストファイルが/tmpにダウンロードされています。

紛失しているものはありますか?

+0

空の応答を取得するあなたは、リンクが機能しているかどうかを確認するために、手動でリンクをクリックしてくださいましたか? – DebanjanB

+0

@DebanjanB:質問に記載されているように、正常に動作しています... – Alex

答えて

1

この場合、クリックは、子要素を通過する必要があるため、問題は可能性があり

elem = browser.find_element_by_xpath('//a[@href="http://ipv4.download.thinkbroadband.com/5MB.zip"]/img') 
elem.click() 

しかし、そうでない場合は、あなたがリンクブラウザ上でクリックすると、そのリンクのためのバックグラウンドで何かをチェックし、サイトがいるようです問題を抱えている、私はブラウザにターゲットリンクを開いたときに、私は

Empty response

+0

'selenium.common.exceptions.InvalidSelectorException:メッセージ:与えられたxpath表現" // a [@ href = "http:// ipv4.download.thinkbroadband.com/5MB.zip"]/img "は無効です:SyntaxError:式は正当な式ではありません。 ' – Alex

+1

二重引用符がスマート引用符に変換されているため、' ''と '" 'は同じではありません。そして外側に二重引用符を使用するときは、内部に一重引用符を使用するべきです。 '" //a[href='http://ipv4.download.thinkbroadband.com/5MB.zip ']/img "' –

+0

はい、私は今それを見る。私はMacで働いています...それはいつもそれを台無しにするようです(Macのため...)。しかし、それは今働くようです! – Alex

関連する問題