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

使用Selenium WebDriver运行TOR浏览器

马朝斑
2023-03-14

我目前正在尝试使用Selenium WebDriver(JAVA)2.53和Firefox 43.0执行TOR 6.0.4。我已经按照这篇文章的说明使用Selenium WebDriver和Tor,但在将Tor的profilePath加载到Firefox二进制文件时,我遇到了一个错误。我已经看到可以通过加载TOR配置文件来访问TOR。firefox二进制文件的默认存档,但我得到了一个驱动程序信息:Driver。版本:未知,当使用配置文件实例化二进制文件时。我试图改变firefox的版本,但仍然没有改变。下面是我启动驱动程序的代码。我也在使用Windows。

 String torPath = "C:\\Users\\Jose Bernhardt\\Desktop\\Tor Browser\\Start Tor Browser.exe";
    String profilePath = "C:\\Users\\Jose Bernhardt\\Desktop\\Tor Browser\\Browser\\TorBrowser\\Data\\Browser\\profile.default";

    File torProfileDir = new File(profilePath);
    FirefoxBinary binary = new FirefoxBinary(new File(torPath));
    FirefoxProfile torProfile = new FirefoxProfile(torProfileDir);
    FirefoxDriver driver = new FirefoxDriver();
    driver.get("http://www.google.com/webhp?complete=1&hl=en");

请参见下面引发的异常:

Exception in thread "main" org.openqa.selenium.WebDriverException: Specified firefox binary location does not exist or is not a real file: C:\Users\Jose Bernhardt\Desktop\Tor Browser\Start Tor Browser.exe

共有3个答案

杜烨伟
2023-03-14

到目前为止,使用Mozilla Firefox支持Tor浏览器,代码如下:

System.setProperty("webdriver.gecko.driver", "C:\\Users\\user\\eclipse-workspace\\TorSelenium\\src\\main\\resources\\geckodriver.exe");//sa used for the firefox
            String torBinaryPath = "C:\\Users\\user\\OneDrive\\Desktop\\Lk's stuff\\Tor Browser\\Browser\\firefox.exe"; //It is inside the tor browser's folder
            
            
            
            Runtime runTime = Runtime.getRuntime();
            Process torProcess = runTime.exec(torBinaryPath + " -n");
            FirefoxProfile profile = new FirefoxProfile();
            profile.setPreference("network.proxy.type", 1);
            profile.setPreference("network.proxy.socks", "127.0.0.1");
            profile.setPreference("network.proxy.socks_port", 9150);
            FirefoxOptions firefoxOptions = new FirefoxOptions();
            firefoxOptions.setProfile(profile);
            WebDriver driver;
            driver = new FirefoxDriver(firefoxOptions);
            driver.manage().timeouts().implicitlyWait(0, TimeUnit.SECONDS);
            driver.manage().window().maximize();
            WebDriverWait wait;
            wait = new WebDriverWait(driver, 30);
            JavascriptExecutor js = (JavascriptExecutor) driver;
            //added end
            
            
            
            System.out.println(ean);
            //Thread.sleep(100);
            //driver.navigate().to("https://www.google.com/?hl=en");
            //driver.navigate().to("https://duckduckgo.com/?q=d&ia=web");
            driver.navigate().to("https://www.swiggy.com");

如果要更改tor标识,则必须使用以下代码重新启动tor:

Runtime.getRuntime().exec("taskkill /f /IM firefox");
            Runtime.getRuntime().exec("taskkill /f /IM firefox.exe");
            if(torProcess.isAlive()) {
                System.out.println("destroying tor");
                torProcess.destroy();
            }
            if(torProcess.isAlive()) {
                System.out.println("forcebly destroying tor");
                torProcess.destroyForcibly();
            }
慕俊迈
2023-03-14
System.setProperty("webdriver.firefox.marionette", ".\\geckodriver.exe");
        String torPath = "C:\\Users\\HP\\Desktop\\Tor Browser\\Browser\\firefox.exe";
        String profilePath = "C:\\Users\\HP\\Desktop\\Tor Browser\\Browser\\TorBrowser\\Data\\Browser\\profile.default";

        File torProfileDir = new File(profilePath);
        FirefoxBinary binary = new FirefoxBinary(new File(torPath));
        FirefoxProfile torProfile = new FirefoxProfile(torProfileDir);

        FirefoxOptions options = new FirefoxOptions();
        options.setBinary(binary);
        options.setProfile(torProfile);
        options.setCapability(FirefoxOptions.FIREFOX_OPTIONS,options);
        WebDriver driver = new FirefoxDriver(options);
孙京
2023-03-14

好像我在加载Tor。我不得不加载firefox。从Tor档案中删除。我改变了我的道路,开始工作。还修复了我没有将配置文件和二进制文件发送给驱动程序构造函数的问题

 "C:\\Users\\Jose Bernhardt\\Desktop\\Tor Browser\\Browser\\firefox.exe"
FirefoxDriver driver = new FirefoxDriver(binary, torProfile);
 类似资料:
  • 有可能让selenium使用TOR浏览器吗?有人有什么代码可以复制粘贴吗?

  • 我研究了一下,但我得到了解决办法: 它给出了错误: 无法加载配置文件。配置文件目录:C:\users\hppav1~1\appdata\local\temp\tmppcuwx3xd Firefox输出:无 当我尝试那个解决方案的时候。 它给出了以下错误: 回溯(最近一次调用):文件“c:/python34/torfirstscript.py”,第10行,在browser=webdriver.fir

  • 我使用的是Selenium 2.53.0Java、Tor 6.0.4和Firefox43。我用Firefoxprofile()加载profile.default归档文件,并用firefox.exe加载Firefoxbinary()来执行tor。Tor启动,但它没有启动,它显示两个错误:无法连接到Tor控制端口和Tor启动失败。

  • 我得到了一个例外: 异常线程"main"java.lang.IllegalStateExcture:驱动程序可执行文件的路径必须由webdriver.gecko.driver系统属性设置;有关详细信息,请参阅https://github.com/mozilla/geckodriver.最新版本可以从https://github.com/mozilla/geckodriver/releases下载

  • 网上有一点信息,大部分都过时了。有没有人知道,我们怎么用视窗平台上的Tor浏览器或TOR上的硒来请求?来自stackowerflow的所有其他答案都不起作用...

  • 使用: Angular CLI在Chrome中默认运行测试,这很好,但是如果我需要在仅控制台环境(无头浏览器)中运行它们呢? 如果我可以在每次运行它时指定是否想要无浏览器,那就太好了,所以类似于: 编辑: 运行PhantomJS我得到了以下信息: PhantomJS 2.1.1 (Linux 0.0.0)错误类型错误:useValue,useFactory,数据不可迭代!http://localh