Firefox webdriver始终打开第一个运行页面

如何禁用这个“第一次运行”页面一劳永逸的FF?

创buildFF驱动程序时,会打开选项卡 – https://www.mozilla.org/en-US/firefox/42.0/firstrun/learnmore/以及目标页面的附加选项卡。

要closures这个烦人的开始页面:

更多的保护。最隐私。 Mozilla Firefox第一屏幕

在C#中使用Selenium 2.48我发现了以下解决scheme:

FirefoxProfile prof = new FirefoxProfile(); prof.SetPreference("browser.startup.homepage_override.mstone", "ignore"); prof.SetPreference("startup.homepage_welcome_url.additional", "about:blank"); Driver = new FirefoxDriver(prof); 

…它永远不会再打扰你了。

注意:其中一个设置也将工作。 我一起使用它们使它防弹。

如果一个解决scheme,工作正常

 FirefoxProfile fp = new FirefoxProfile(); fp.setPreference("browser.startup.homepage", "about:blank"); fp.setPreference("startup.homepage_welcome_url", "about:blank"); fp.setPreference("startup.homepage_welcome_url.additional", "about:blank"); 

我面临同样的问题。 我刚刚将selenium版本更改为2.48,解决了问题。

这是由Selenium和Firefox版本之间的不兼容性引起的,而不是任何一个特定的版本号。

如果你的WebDriver是最新版本的,你应该是最新的1-2个Firefox版本。 否则,如果您的WebDriver较旧,或者升级Webdriver,则将Firefox版本更进一步。

要获得较旧的Firefox,请尝试https://ftp.mozilla.org/pub/firefox/releases/或http://www.oldapps.com/

或在Linux上,取决于你的发行版

 yum list --showduplicates firefox sudo yum install firefox-<version> 

要么

 apt-cache show firefox | grep Version sudo apt-get install firefox=<version> 

C#解决scheme,升级Selenium WebDriver 2.49.0解决了我的问题。

上述解决scheme不起作用,我试过了。 什么工作对我来说,可能会为你(如果使用Firefox 43或更低)是:

  prof.setPreference("xpinstall.signatures.required", false); prof.setPreference("toolkit.telemetry.reportingpolicy.firstRun", false); 

43和selenium的问题是双重的,默认签名扩展设置(为true)和第一个运行页面。 这两条线都解决 这些必须以编程方式设置。 如果您尝试将它们设置为about:config(或直接在prefs.js中),则不会影响您用selenium打开的新浏览器。 应该指出,他们说,Firefox 44不会允许你设置签名扩展variables(所以这不会在44)。

我包含了我现在正在使用的代码中的代码块,显示了正确的用法:

  FirefoxProfile prof = new FirefoxProfile(); //FirefoxProfile prof = profile.getProfile("default"); //prof.setPreference("browser.startup.homepage", proteinPageUrl); //prof.setPreference("startup.homepage_welcome_url", proteinPageUrl); //prof.setPreference("startup.homepage_welcome_url.additional", proteinPageUrl); prof.setPreference("xpinstall.signatures.required", false); prof.setPreference("toolkit.telemetry.reportingpolicy.firstRun", false); //Object socketLock = new Object(); //synchronized(socketLock){ //driver = new FirefoxDriver(); driver = new FirefoxDriver(prof); //driver = forceInit(); //driver.open(); //}//end synch block //get protein page boolean done = true; do{ driver.get(proteinPageUrl); final Wait<WebDriver> waitDriver = new FluentWait<WebDriver>(driver) .withTimeout(30, java.util.concurrent.TimeUnit.SECONDS) .pollingEvery(5, java.util.concurrent.TimeUnit.SECONDS); try{ inputTextFeildElement = waitDriver.until(new Function<WebDriver,WebElement>(){ public WebElement apply(WebDriver diver){ return driver.findElement(By.name("term")); }}); } catch(NoSuchElementException nsee){ //if not find by name try find by id if(driver.findElements(By.id("term")).size() != 0){ try{ inputTextFeildElement = driver.findElement(By.id("term")); done = true; } catch(NoSuchElementException nsee2){ synchronized(threadLogFile){ try { threadLogWriter = new PrintWriter(new FileWriter(threadLogFile.getAbsoluteFile(), true)); } catch (IOException ioe) { System.out.println("error opening file for append: " + ioe.getMessage()); ioe.printStackTrace(); }//catch threadLogWriter.println("Thread Id: " + threadId + " with thread name: " + threadName + " fails to find input element by name or id to put accession: " + accession); threadLogWriter.flush(); threadLogWriter.close(); }//synchronized done = false; }//catch nsee2 }//catch nsee } catch(ElementNotVisibleException enve){ done = false; } }while(!done); 

如果您使用来自Capybara / Cucumber的selenium webdriver,那么当您使用startup.homepage_welcome_url.additional注册您的驱动程序时,您可以更改默认的url:

 Capybara.register_driver :firefox do |app| profile = Selenium::WebDriver::Firefox::Profile.new profile['browser.startup.homepage_override.mstone'] = 'ignore' profile['startup.homepage_welcome_url.additional'] = 'about:blank' Capybara::Selenium::Driver.new(app, :browser => :firefox, :profile => profile) end 

我面临同样的问题。 我的解决scheme

  • 我把Firefox降级到了36.0。
  • 它在Selenium 2.53.1中运行良好。

我希望这个帮助。 🙂