当前位置: 首页 > 面试题库 >

Python Selenium Webdriver-快速更改代理设置

夏侯阳
2023-03-14
问题内容

我目前正在成功使用以下代码在Selenium
Webdriver中使用代理。不幸的是,如果不重新启动整个浏览器,我似乎无法使其更改代理设置。我曾希望仅更新代理服务器设置(就像我将代理服务器设置为开始那样)会更改代理服务器,但似乎不起作用。在这个问题上的任何帮助将不胜感激。

profile = webdriver.FirefoxProfile()
profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.http", proxyAddress)
profile.set_preference("network.proxy.http_port", proxyPort)
profile.update_preferences()
driver = webdriver.Firefox(firefox_profile=profile)

问题答案:

这是一个有点老的问题。但是实际上有可能通过“ hacky way ” 动态地更改代理,我将在 Firefox中 使用 Selenium
JS,
但是您可以使用想要的语言。

第1步: 访问“ about:config”

driver.get("about:config");

步骤2: 运行更改代理的脚本

var setupScript=`var prefs = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefBranch);

prefs.setIntPref("network.proxy.type", 1);
prefs.setCharPref("network.proxy.http", "${proxyUsed.host}");
prefs.setIntPref("network.proxy.http_port", "${proxyUsed.port}");
prefs.setCharPref("network.proxy.ssl", "${proxyUsed.host}");
prefs.setIntPref("network.proxy.ssl_port", "${proxyUsed.port}");
prefs.setCharPref("network.proxy.ftp", "${proxyUsed.host}");
prefs.setIntPref("network.proxy.ftp_port", "${proxyUsed.port}");
                  `;

//running script below  
driver.executeScript(setupScript);

//sleep for 1 sec
driver.sleep(1000);

当使用 $ {ABCD} 是你把你的变量,在上面的例子中,我使用ES6它处理级联如图所示,你可以使用你选择的其他拼接方法,根据您的语言。(该
SetupScript
是一个 字符串 包含要运行的脚本用``)括起来

步骤3 :访问您的html" target="_blank">网站

driver.get("https://whatismyip.com");

说明:以上代码利用Firefox的API来使用JavaScript代码更改首选项。



 类似资料:
  • 问题内容: 现在我知道苹果不推荐这样做。 通常,您不应在应用程序内更改iOS系统语言(通过使用AppleLanguages首选项键)。这违反了在设置应用程序中切换语言的基本iOS用户模型,并且还使用了未记录的首选项键,这意味着将来某个时候,键名可能会更改,这会破坏您的应用程序。 但是,这是一个可以随时更改语言的应用程序,请相信我。我也知道有人问过这个问题:在运行iOS时以编程方式实时更改语言。但是

  • 我目前正在成功地使用下面的代码将代理与Selenium webdriver一起使用。不幸的是,我似乎无法让它在不重新启动整个浏览器的情况下更改代理设置。我曾希望简单地更新代理设置,就像我在开始设置代理时所做的那样,可以更改代理,但它似乎不起作用。在此问题上的任何帮助都将不胜感激。

  • 问题内容: 我得到的值是123456,我想在快速编程中将此值转换为1,23,456。我怎样才能做到这一点 ? 问题答案: 这是一种印度风格的数字格式,其中100,000(写为1,00,000)是一个“ lakh” 。 针对iOS中的不同区域设置从CurrencyFormatter转换和简化Objective-C代码可得到: Swift 3更新:

  • 在时间视图中,从显示屏上方向下滑动,可下拉快速设置菜单。向左或向右滑动进行浏览,轻触可选择免打扰功能或飞行模式: 闹钟 : 设置闹铃重复:关闭、一次、周一至周五或每天。如果您选择一次、周一至周五或每天,同时也要设置闹钟的时间。 设置闹铃后,时间视图中将显示时钟图标。 免打扰:轻触免打扰图标可启用它,再次轻触将关闭图标。当启用免打扰时,您不会收到任何通知或来电提醒。背光灯激活手势也会被禁用。 飞行模

  • 在时间视图中,从显示屏上方向下滑动,可下拉快速设置菜单。 向左或向右滑动进行浏览,轻触可选择一个功能。 轻触 可定制您想在快速设置菜单中看到的功能。从闹铃、倒计时器、请勿打扰和飞行模式中进行选择。 闹铃:设置闹铃重复:关闭、一次、周一至周五或者 每天。如果您选择一次、周一至周五或每天,同时也要设置闹钟的时间。 启用闹铃后,时间视图中将显示时钟图标。 倒计时器:选择设置计时器,然后设置倒计时时间并按

  •  对于经常需要填写的报表,我们可以以按钮的方式显示在工具栏上,这样我们只要点击这些按钮就可以快速进入填表状态。 如下图所示 点击 E立方管理平台  选项… ,出现如下界面: 在需要快捷方式的报表前面打上勾(如果要取消已有的快捷方式,取消打勾即可),点击“确定”关闭窗体,然后退出并重新登录(必须重新登录才会生效)。如果是第一次设置快捷方式,重新登录后会出现一个悬浮工作栏,如下图所示: 你可以把它拖