2016-09-03 111 views
0

我已經嘗試了Alex在下面的頁面上發佈的解決方案,但我一直收到此錯誤。 How do I set a proxy for phantomjs/ghostdriver in python webdriver?使用python,selenium和phantomJS設置代理

我在我的PATH中有phantomJS。

File "C:\Users\sri19\Desktop\Gui OSRS\testphantomproxy.py", line 21, in <module> 
    driver = webdriver.PhantomJS(service_args=phan_args, desired_capabilities=dcap) 
File "C:\Python27\Lib\site-packages\selenium\webdriver\phantomjs\webdriver.py", line 52, in __init__ 
    self.service.start() 
File "C:\Python27\Lib\site-packages\selenium\webdriver\common\service.py", line 86, in start 
    self.assert_process_still_running() 
File "C:\Python27\Lib\site-packages\selenium\webdriver\common\service.py", line 99, in assert_process_still_running 
    % (self.path, return_code) 

selenium.common.exceptions.WebDriverException: Message: Service phantomjs unexpectedly exited. Status code was: -1 

這是我目前的測試腳本

from selenium import webdriver 
from selenium.webdriver.common.proxy import * 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.by import By 
from selenium.common.exceptions import StaleElementReferenceException, TimeoutException 
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 
from selenium.webdriver.common.keys import Keys 
import sys 

singleproxy = "88.157.149.250:8080" 
proxytype = "http" 

user_agent = ("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) " + "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36") 

phan_args = ['--proxy=88.157.149.250:8080', 'proxy-type=http'] 
print "step 1" 
dcap = dict(DesiredCapabilities.PHANTOMJS) 
dcap["phantomjs.page.settings.userAgent"] = user_agent 
print "step 2" 
driver = webdriver.PhantomJS(service_args=phan_args, desired_capabilities=dcap) 
driver.get("https://www.whatismyip.com/") 
print "step 3" 
print driver.current_url 

htmlpage = driver.page_source 
print htmlpage.encode(sys.stdout.encoding, errors='replace') 

誰能幫我明白爲什麼我收到這個錯誤?當我將這個代理應用於chromedriver(通過一種不同的方法)時,它就起作用了。所以它不能是代理。

回答

0

Whelp ...犯了一個小錯誤。

下面的行 phan_args = [ '--proxy = 88.157.149.250:8080', '代理類型= HTTP'] 應該是 phan_args = [ '--proxy = 88.157.149.250:8080', '--proxy-type = http']

相關問題