我创建了一个 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浏览器将打开并加载页面,但页面的屏幕截图未生成且无法保存在本地计算机中。谁能帮我解决一下吗?
请使用以下代码:
TakesScreenshot scrShot =((TakesScreenshot)driver);
File srcFile = scrShot.getScreenshotAs(OutputType.FILE);
if(srcFile != null)
{
File saveFileName = new File("test1.png");
FileHandler.copy(srcFile, saveFileName);
}
从selenium 4.1.2的更改日志中可以明显看出,仅支持的CDP版本是85、95、96、97。因此,如果您使用Chrome驱动程序98,则4.1.3将支持相应的CDP 。因此,您可以将 Chrome 驱动程序降级到 97 或将 Selenium 升级到 4.1.3