Selenium - Https与Firefox的PhantomJS和Proxy Auth问题

时间:2015-12-07 18:12:49

标签: python selenium proxy automation phantomjs

好的,所以我的目标是通过代理连接到https网站,需要身份验证而不需要任何人为干预。

解决方案#1:Firefox

public class GalleryScreen : MonoBehaviour {
string[] filePaths;
int x = 0;
WWW www;

// Use this for initialization
void Start()
{
    StartCoroutine("load_image");
}

// Update is called once per frame
void Update()
{

}
IEnumerator load_image()
{

        filePaths = Directory.GetFiles(Application.dataPath + "CountryHorse/pics/", "*.png");

        www = new WWW("file://" + filePaths[x]);
        yield return www;
        Texture2D temp = new Texture2D(0, 0);
        www.LoadImageIntoTexture(temp);


        GetComponent<Image>().material.mainTexture = temp;

}

public void next()
{
    x++;
    if (x > filePaths.Length) x = 0;


}

public void back()
{

}

问题:浏览器打开后,会打开用户名和密码的auth弹出窗口。

fp = webdriver.FirefoxProfile()
fp.set_preference("network.proxy.type", 1)
fp.set_preference("network.proxy.http", "IP")
fp.set_preference("network.proxy.http_port", PORT)
driver = webdriver.Firefox(firefox_profile=fp)
driver.get("http://www.google.com")

不起作用,根本没有回复。 将代理更改为

也没有运气
alert = driver.switch_to_alert()
alert.send_keys('balbla')

解决方案#2:PhantomJs

使用phantomjs我设法在代码中进行身份验证:

http://username:password@ip

问题:我无法浏览任何 https 网站,例如我正在尝试进入 https :// www .gmail.com,我得到空页。 代理正在使用https(手动加倍检查)。

添加

service_args = [
    '--proxy=https://IP:PORT',
    '--proxy-type=http',
    '--proxy-auth=USERNAME:PASSWORD',
    ]
br = webdriver.PhantomJS(PATH,service_args=service_args)
br.get('https://www.google.com/')

不能正常工作。

我在Linux环境下使用selenium和python。寻找任何可以帮助我解决的解决方案。

谢谢你的头。

1 个答案:

答案 0 :(得分:0)

我想这有点晚了:) - 但基本上从代理中删除了https并将代理类型设置为https,即:

service_args = [
    '--proxy=IP:PORT',
    '--proxy-type=https',
    '--proxy-auth=USERNAME:PASSWORD',
    ]