代码之家  ›  专栏  ›  技术社区  ›  kels

如何使用Selenium WebDriver和Cucumber在Chrome中正确打开本地文件?

  •  2
  • kels  · 技术社区  · 6 年前

    在通过所有测试用例(在Cucumber中称为场景)后,我试图调用一个使用@After hook Cucumber功能的方法,以便在Chrome浏览器中打开一个报告文件。其想法是在通过所有测试后,使用Selenium WebDriver显示报告文件。当Cucumber调用@After hook方法时,Selenium启动并获取该路径,但Chrome不会打开报告文件。Chrome表示“找不到您的文件,它可能已被移动或删除。ERR\u file\u not\u found”。但如果我手动点击重新加载按钮,文件就会成功打开。 当你熟悉黄瓜和硒时,请帮助我。 提前谢谢你。 P、 是的,我也尝试用“/”替换“\”

    当Selenium尝试访问该报告html文件时: chrome screenshot

    我的Java代码是:

    @After
    public void afterScenarios(){
              System.setProperty("webdriver.chrome.driver", "C:\\Users\\Testing\\BrowserDrivers\\chromedriver_win32\\chromedriver.exe");
              driver = new ChromeDriver();
              driver.manage().window();
              System.out.println("Opening the report...");
              driver.get("C:\\Users\\target\\cucumber-report\\business-acceptance-test1\\index.html");
    
    }
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Grasshopper    6 年前

    执行After钩子时,报告过程没有完全完成。尝试将selenium代码放置在 JVM关闭挂钩 。这将确保一切都已完成。

    Runtime.getRuntime().addShutdownHook(new Thread()......);
    

    请参阅此- https://www.geeksforgeeks.org/jvm-shutdown-hook-java/