猿问

如何使用 Python 在 Selenium 中使用用户名和密码对代理进行身份验证

我正在尝试使用 Python 在 Selenium 中使用用户名和密码对代理进行身份验证,但当前代码不起作用。我尝试了很多解决方案,但没有一个有效。


代理示例,


IP = xxx.xx.xx.xx

PORT = xxxxx

USERNAME = USERNAME

PASSWORD = PASSWORD

我使用了以下代码,


driver.execute_script("""

          Services.prefs.setIntPref('network.proxy.type', 1);

          Services.prefs.setCharPref("network.proxy.http", arguments[0]);

          Services.prefs.setIntPref("network.proxy.http_port", arguments[1]);

          Services.prefs.setCharPref("network.proxy.ssl", arguments[0]);

          Services.prefs.setIntPref("network.proxy.ssl_port", arguments[1]);

          Services.prefs.setCharPref('network.proxy.socks', arguments[4]);

          Services.prefs.setIntPref('network.proxy.socks_port', arguments[5]);

          Services.prefs.setCharPref('network.proxy.socks_username', arguments[6]);

          Services.prefs.setCharPref('network.proxy.socks_password', arguments[7]);

          """, http_addr, http_port, ssl_addr, ssl_port, socks_addr, socks_port, socks_username, socks_password)

我也尝试过其他一些代码片段。我也尝试将值放入警报框中。


慕村225694
浏览 149回答 1
1回答

繁华开满天机

您可以使用AutoIt来实现此目的。它具有 Python 绑定PyAutoIt。使用 PIP 安装 PyAutoIt 后pip install PyAutoIt,以下代码即可完成您的工作。import autoitautoit.win_wait_active("Authentication Required") # title of the dialog box to wait. so it will wait for the Authentication Required dialogautoit.send("username", 1) # second parameter is the mode (changes how "keys" is processed)autoit.send("{TAB}") # press tab key to go to the password fieldautoit.send("password", 1)autoit.send("{Enter}") # press enter key有关 send 方法中第二个参数的更多信息,这里是代码,def send(send_text, mode=0):    """    Sends simulated keystrokes to the active window.    :param send_text:    :param mode: Changes how "keys" is processed:        flag = 0 (default), Text contains special characters like + and ! to         indicate SHIFT and ALT key presses.        flag = 1, keys are sent raw.    :return:    """    AUTO_IT.AU3_Send(LPCWSTR(send_text), INT(mode))
随时随地看视频慕课网APP

相关分类

Python
我要回答