2

私の質問は、Python(2.7)for Firefox(Geckodriver v0.18.0-win64)のセレン(3.4.3。)でプロキシを設定することです。 の仕様は http://www.seleniumhq.org/docs/04_webdriver_advanced.jsp で、Javaの例のみを提供しています。Firefox用Pythonでセレンに設定するGeckodriver

selenium.common.exceptions.WebDriverException:メッセージ: プロファイルを読み込むことができません

from selenium import webdriver 
PROXY = "94.56.171.137:8080" 
class Proxy(object):   
    def __call__(self):  
     self.base_url = "https://whatismyip.com" 
     print self.base_url   
     # proxy json object 
     desired_capability = webdriver.DesiredCapabilities.FIREFOX['proxy']={ 
      "httpProxy":PROXY, 
      "ftpProxy":PROXY, 
      "sslProxy":PROXY, 
      #"noProxy":None, 
      "proxyType":"manual" 
     }  
     firefox_profile = webdriver.FirefoxProfile() 
     firefox_profile.set_preference("browser.privatebrowsing.autostart", True) 
     self.driver = webdriver.Firefox(executable_path='D:\Code\Drivers\geckodriver',firefox_profile=firefox_profile, capabilities=desired_capability)   
     self.driver.get(self.base_url)  

if __name__ == "__main__":   
    proxy_test = Proxy() 
    proxy_test() 

私は、次のエラーメッセージを取得しています。 Firefoxのバージョンが一致しない可能性があります。 Firefox 48+の代わりにGeckoDriver を使用する必要があります。

プロキシに関するコードにコメントすると、指定したプロファイルとしてプライベートモードでページを取得できます。私は物事を台無しにするプロキシだと思う。

+0

私はエラーがかなり自己説明だと思う。 Firefoxを更新する必要があります。 – Kapil

+0

いいえ、私は最新のFirefoxバージョン55.0.3を持っています。 – Yaso

答えて

2

私は何時間も答えを見つけて共有したいと思います。 単純な問題はプロキシ仕様にありました。答えは数ここ

PROXY = "94.56.171.137" 
PORT = 8080 

としてポートを確認する必要があり

PROXY = "94.56.171.137:8080" 

当初はプロキシとポートだった1つの文字列は

from selenium import webdriver 

PROXY = "94.56.171.137" 
PORT = 8080 

class Proxy(object):   
    def __call__(self):  
     self.base_url = "https://whatismyip.com" 
     print self.base_url   
     # https://github.com/mozilla/geckodriver 
     # proxy json object 
     desired_capability = webdriver.DesiredCapabilities.FIREFOX 
     desired_capability['proxy']={ 
      "proxyType":"manual", 
      "httpProxy":PROXY, 
      "httpProxyPort": PORT, 
      "ftpProxy":PROXY, 
      "ftpProxyPort": PORT, 
      "sslProxy":PROXY, 
      "sslProxyPort" : PORT 
     }   

     firefox_profile = webdriver.FirefoxProfile() 
     firefox_profile.set_preference("browser.privatebrowsing.autostart", True) 
     self.driver = webdriver.Firefox(executable_path='D:\Drivers\geckodriver',firefox_profile=firefox_profile, capabilities=desired_capability) 

     self.driver.get(self.base_url)  

if __name__ == "__main__":  

    proxy_test = Proxy() 
    proxy_test() code here 
3

Yasoの答えが」didnのコードの残りの部分であります私のために働く代わりに私はこれを使用しました

proxyString = "Ip:port" 

desired_capability = webdriver.DesiredCapabilities.FIREFOX 
     desired_capability['proxy'] = { 
      "proxyType": "manual", 
      "httpProxy": proxyString, 
      "ftpProxy": proxyString, 
      "sslProxy": proxyString 
     } 
関連する問題