【问题标题】:Selenium 3: Cannot disable first run webpageSelenium 3:无法禁用首次运行网页
【发布时间】:2016-08-31 12:15:09
【问题描述】:

我正在使用 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 二进制文件的链接会有所帮助。

【问题讨论】:

    标签: java selenium automation


    【解决方案1】:

    由于扩展程序,我在 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));
    

    如果您遇到赛车条件问题,您还可以在切换选项卡之间进行一些隐式等待。希望它有效!

    【讨论】:

    • 我之前也有同样的想法。不幸的是,在 Selenium 3 中打开选项卡也不起作用。我认为发布 Selenium 3 的 beta 版本并删除 Selenium 2 的二进制文件是一个糟糕的举动。所以我什至不能降级。
    • 我明白了,对于工作和个人测试,我使用 2.53 Selenium 版本,您可以尝试看看是否可以在某个地方找到它,请记住,对于此版本,您需要使用 Firefox 44.0.2。
    猜你喜欢
    • 1970-01-01
    • 2022-01-26
    • 2021-06-04
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    相关资源
    最近更新 更多