Java-Selenium - 无法找到 CDP 版本 98 的精确匹配,因此返回找到的最接近的版本:97

问题描述 投票:0回答:2

我创建了一个 Maven 项目,用于从我在代码中给出的网页 URL 截取屏幕截图。我使用的是 chrome 驱动程序版本 98 和 selenium 版本 4.1.2。运行代码时,我收到有关 CDP 版本的警告消息。 这是我的代码。 截屏.java

public class Takescreenshot
{
    private static final File SrcnewFile = null;

    public static void main(String[] args) throws Exception
    {
        WebDriver driver ;
        WebDriverManager.chromedriver().clearCache();
        //System.setProperty("webdriver.chrome.driver","C:\drivers/chromedriver.exe");
        WebDriverManager.chromedriver().setup();
        driver = new ChromeDriver();
        driver.get("https://www.amazon.in/");
        TakesScreenshot scrShot =((TakesScreenshot)driver);
        File SrcFile=scrShot.getScreenshotAs(OutputType.FILE);
        if(null!=null) 
        {
            File DestFile=new File("c:test/test1.png");
            FileUtils.copyFile(SrcFile, DestFile);
            FileUtils.getFile(SrcnewFile, ("c://test1.png"));
             driver.quit();  
        }
    }
}

当我尝试运行我的程序时,出现以下错误。

    Starting ChromeDriver 98.0.4758.80 (7f0488e8ba0d8e019187c6325a16c29d9b7f4989-refs/branch-heads/4758@{#972}) on port 58811
Only local connections are allowed.

    Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
    ChromeDriver was started successfully.
    Feb 15, 2022 12:53:33 PM org.openqa.selenium.remote.ProtocolHandshake createSession
    INFO: Detected dialect: W3C
    Feb 15, 2022 12:53:33 PM org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch
    WARNING: Unable to find an exact match for CDP version 98, so returning the closest version found: 97
    Feb 15, 2022 12:53:33 PM org.openqa.selenium.devtools.CdpVersionFinder findNearestMatch
    INFO: Found CDP implementation for version 98 of 97

我正在使用 Maven。我的 pom.xml 文件看起来像这样

 <dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>31.0.1-jre</version>
</dependency>
    <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.7</version>
</dependency>
    <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.1.2</version>
</dependency>   
<dependency>
  <groupId>io.github.bonigarcia</groupId>
  <artifactId>webdrivermanager</artifactId>
  <version>3.6.2</version>
</dependency>

当我运行java程序时,chrome浏览器将打开并加载页面,但页面的屏幕截图未生成且无法保存在本地计算机中。谁能帮我解决一下吗?

java selenium selenium-chromedriver webdriver
2个回答
0
投票

请使用以下代码:

    TakesScreenshot scrShot =((TakesScreenshot)driver);
    File srcFile = scrShot.getScreenshotAs(OutputType.FILE);
    if(srcFile != null)
    {
        File saveFileName = new File("test1.png");
        FileHandler.copy(srcFile, saveFileName);
    }

0
投票

从selenium 4.1.2的更改日志中可以明显看出,仅支持的CDP版本是85、95、96、97。因此,如果您使用Chrome驱动程序98,则4.1.3将支持相应的CDP 。因此,您可以将 Chrome 驱动程序降级到 97 或将 Selenium 升级到 4.1.3

© www.soinside.com 2019 - 2024. All rights reserved.