java - Selenium 3 : Cannot disable first run webpage

标签 java selenium automation

我正在使用 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/

相关文章:

测试:如何处理不适用于一次测试的设置逻辑?

selenium - Docker 中的 Nightwatch 仅适用于 Phantom

python - 如何以编程方式检查 Windows 计算机上打开的浏览器实例?

ruby - 我如何在 Watir 中协商警报框?

java - 使用 java 反射 api 调用 selenium web 驱动程序方法 'findElement' 时代码出现问题

java - com.dhtmlx.connector.JSONOptionsConnector 无法转换为 com.dhtmlx.connector.OptionsConnector

java - 用java读取POST

java - 打开相机后未调用 onActivityResult

java - 队列或 REST API 是处理用户请求的更好方法吗?

java - 按键事件不适用于 selenium webdriver 中的 chrome 浏览器