我正在使用 Selenium 3(Java 框架)和 Firefox 48 运行一些自动化任务。但是,有时,Firefox 启动时会调用第一个运行的网页。这会干扰自动化。我尝试通过使用来停用此行为
System.setProperty("webdriver.gecko.driver", geckoPath);
FirefoxProfile fp = new FirefoxProfile();
fp.setPreference("browser.startup.homepage_override.mstone", "ignore");
fp.setPreference("startup.homepage_welcome_url.additional", "about:blank");
driver = new FirefoxDriver(fp);
我通过网络搜索找到了这个解决方案,但似乎这在 Selenium 3 中不起作用。
有没有其他方法可以禁止显示首次运行页面?另外,Selenium 2 二进制文件的链接也会有所帮助。
最佳答案
由于扩展程序,我在 Chrome 上遇到了类似的问题。我所做的是,在启动驱动程序后,我在执行驱动程序时打开了第二个选项卡,并在新选项卡上加载 URL,然后关闭了第一个选项卡。
您可以使用如下链接打开一个新选项卡:
String newTab = Keys.chord(Keys.CONTROL,Keys.RETURN);
driver.findElement(By.linkText("yourLink")).sendKeys(newTab);
打开新选项卡后,关闭第一个选项卡并切换到当前工作选项卡,如下所示。
//Getting all tabs opened on the browser
ArrayList<String> tabs = new ArrayList<String>(driver.getWindowsHandles());
//This will switch to the Firefox welcome tab and close it
driver.switchTo().window(tabs.get(0));
driver.close();
//Move back to your website
driver.switchTo().window(tabs.get(1));
如果您遇到赛车条件问题,您还可以在切换选项卡之间进行一些隐式等待。希望它有效!
关于java - Selenium 3 : Cannot disable first run webpage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39249383/