当前位置: 首页 > 知识库问答 >
问题:

在Selenium.WebDriver+PhantomJS中使用C#在运行时更改代理

马冯浩
2023-03-14

有一种方法可以在运行时对PhantomJS中的代理进行dinamily更改。下面是Python代码:

driver = webdriver.PhantomJS()
driver.command_executor._commands['executePhantomScript'] = ('POST', '/session/$sessionId/phantom/execute')
driver.execute('executePhantomScript', {'script': '''phantom.setProxy("10.0.0.1", 80);''', 'args' : [] })

C#中,我尝试:

((IJavaScriptExecutor)driver).ExecuteScript(@"phantom.setProxy(""10.0.0.1"", 80)");

{“errormessage”:“找不到变量:幻影”,“request”:{“headers”:{“accept”:“application/json,image/png”,“connection”:“close”,“content-length”:“62”,“content-type”:“application/json;charset=UTF-8”,“host”:“localhost:57378”},“httpversion”:“1.1”,“method”:“post”:“post”:“{\”script\“:”phantom.setproxy(\\“查询”:“”、“文件”:“执行”、“目录”:“/”、“路径”:“/执行”、“相对”:“/执行”、“端口”:“”、“主机”:“、”密码“:”“、”用户“:”、“用户信息”:“、”授权“:”、“协议”:“、”源“:”/执行“、”查询键“:{}、”块“:[”执行“]}、”URLOriginal“:”/Session/513F2130-26B4-11E7-B459-45C0E08B428C/EXECUTE}}

共有1个答案

子车新立
2023-03-14

NET中的一个限制是您不能远程执行此操作(通过Selenium Grid或类似的方式);您只能在本地执行此操作。这样做的代码如下所示:

// WARNING! Untested code written without benefit of
// an IDE. Might not run or even compile without modification.
// First, cast the IWebDriver interface back to the concrete
// PhantomJSDriver implementation.
PhantomJSDriver phantomDriver = driver as PhantomJSDriver;
if (phantomDriver != null)
{
    // If the cast succeeded, the implementation has the
    // ExecutePhantomJS method, which executes script in
    // the browser context instead of the page context.
    phantomDriver.ExecutePhantomJS("phantom.setProxy('10.0.0.1', 80);");
}
 类似资料:
  • 问题内容: 如何在运行时更新此环境变量,以便ctypes可以在任何地方加载库?我尝试了以下方法,但似乎都没有用。 问题答案: 在运行诸如Python之类的程序时,动态加载程序(ld.so.1或类似的文件)已经读取LD_LIBRARY_PATH,并且此后将不会注意到任何更改。因此,除非Python软件本身评估LD_LIBRARY_PATH并使用它来构建可能的库路径名或要使用的等效函数,否则在脚本中设

  • 问题内容: 我想向管理界面公开一些(特定于应用程序的)设置,以便用户可以轻松地更改它们,也不必重新启动Django。 我应该怎么做? 我在http://djangopackages.com/grids/g/live-setting/上签出了应用程序(btw django-constance最吸引人),但实际上所有这些应用程序所做的就是将值存储在数据库中,从而提供了一个网站。界面来更改它们,并进行缓

  • 问题内容: 当我尝试在Chrome中运行测试时出现此错误: 初始化方法AutomationUsingSelenium.SmuladorChrome.MyTestInitialize引发异常。OpenQA.Selenium.DriverServiceNotFoundException:OpenQA.Selenium.DriverServiceNotFoundException 原因是什么? 问题答案

  • 我通过Jasmine、Karma和各种浏览器进行测试。我目前正在调试一个只在PhantomJS中失败的测试。 我想调试这个调用,所以我在karma中设置了一个自定义的PhantomJS启动器,在调试端口打开的情况下运行它。 我可以通过该端口访问Chrome中的远程调试器,但是,它似乎对我的任何测试文件一无所知。它报告一个“关于:空白”和一个“localhost:9876”(Phantom正在访问的

  • 问题内容: 大约一年前,我偶然发现了Java的一个不错的功能,我一生都找不到。 通过一些魔术接口,显然可以在运行时声明一些可替换的类或函数。 我找到了一个很好的示例指南,该人运行了一个简单的小程序,该程序打印了一条特定的消息,然后他使用一种我不记得的方法更新了该程序,然后突然该程序将旧的打印功能替换为新的打印功能。 我尝试浏览Java API来激发我的记忆力和谷歌搜索功能,但没有成功。有人可以帮忙