当前位置: 首页 > 知识库问答 >
问题:

Selenium WebDriverManager-在Linux服务器上运行时出现异常

江志业
2023-03-14

我是Selenium的新手,遇到了一些问题。

我正在使用与Selenium连接的WebDriverManager。这是我的代码:

WebDriverManager.chromedriver().setup();

当我在本地系统(Windows 10操作系统)上运行代码时,一切都运行得非常好。当我在我们的Linux服务器(Ubuntu 18.04、Tomcat 9)上作为Web应用程序运行我的代码时,我得到以下异常:

io.github.bonigarcia.wdm.config.WebDriverManagerException: Exception reading resolution cache as a properties file
        at io.github.bonigarcia.wdm.cache.ResolutionCache.<init>(ResolutionCache.java:86)
        at io.github.bonigarcia.wdm.WebDriverManager.getResolutionCache(WebDriverManager.java:1490)
        at io.github.bonigarcia.wdm.WebDriverManager.clearResolutionCache(WebDriverManager.java:780)
        at io.github.bonigarcia.wdm.WebDriverManager.handleException(WebDriverManager.java:1263)
        at io.github.bonigarcia.wdm.WebDriverManager.manage(WebDriverManager.java:1060)
        at io.github.bonigarcia.wdm.WebDriverManager.setup(WebDriverManager.java:393)
....
Caused by: java.io.IOException: No such file or directory
        at java.base/java.io.UnixFileSystem.createFileExclusively(Native Method)
        at java.base/java.io.File.createNewFile(File.java:1035)
        at io.github.bonigarcia.wdm.cache.ResolutionCache.<init>(ResolutionCache.java:75)

我使用的是Selenium 4.2.1和Webdriver 5.1.0
在我们的Linux服务器上,我安装了Google Chrome,如下所述。运行时

google-chrome --version
-> Google Chrome 102.0.5005.115

我得到了显示的结果,所以我认为应该正确安装Chrome。有人有主意吗?

共有1个答案

柳修平
2023-03-14

似乎无法创建解析缓存,这是默认情况下在以下路径中创建的属性文件:<代码>~/。缓存/硒。您可以尝试手动创建该路径(尽管WebDriverManager应该能够在该路径不存在时创建)。

在任何情况下,要正确调试它,都需要检查WebDriverManager跟踪。为此,您需要在项目类路径中包含一个Logback配置文件(例如,如下所示)。此文件的名称应为src/test/resources/logback test。xml(如果只需要测试日志)或src/test/resources/logback。xml(如果需要测试和应用程序代码的日志)。然后,您可以使用以下行将级别设置为跟踪:

<logger name="io.github.bonigarcia" level="TRACE" />

有关使用SLF4J和Logback进行日志记录的更多信息,您可以参阅以下教程。

 类似资料:
  • 我从minecraft技术页面为1.12.2包下载了服务器文件夹,在运行LaunchServer.bat时,我得到以下错误: 我的输出: 对于环境变量: 我的设置为 我的路径包含 我尝试的内容:我查看了.bat文件,并将其更改为Minecraft.NET推荐的行。我还有一个对运行服务器有经验的朋友看了一下,他说批处理文件的文件和行看起来很好。所以我想这是我的java和如何安装它的一个问题。在做了一

  • 我们已经安装了Tomcat7.0。好心帮帮忙!!!

  • 问题内容: 我需要将Silverlight 2.0应用程序部署到Apache服务器,但是它在Linux下。 这可能吗?我的意思是,我是否需要在服务器中安装.Net 3.5和可以执行Asp.Net的网站? 谢谢您的帮助… 问题答案: 如果apache服务器只是在没有任何ASPX页面的情况下提供Silverlight应用程序,那么您应该没问题。Silverlight是一种客户端技术,因此它在服务器上不

  • 问题内容: 对于具有Java背景的开发人员,我也有兴趣探索使用ASP.NET工具/平台进行软件开发。 Java Web应用程序(.jsp和servlet)可以在许多服务器平台上运行。 问题 :.NET Web应用程序能否在基于Linux的服务器上运行?考虑到无法使用Windows服务器托管Web应用程序的情况。 问题答案: 这取决于您使用的是哪种特定的.NET技术。该Mono项目提供运行ASP.N

  • 我正在尝试在一个使用chrome的Linux服务器上运行一个使用selenium webdriver实现的测试,并且不显示我的java代码 要运行此程序(jar),请使用以下命令启动Xvfb 当我运行程序时,经过一段长时间的等待,我得到了这个异常 当我尝试单独运行chrome时,a遇到了这个问题 问题是: 是在定位驱动程序的问题还是在chrome或我需要一些额外的配置?

  • 我在Linux服务器上用chrome驱动程序版本74运行Selenium时遇到了异常(如下)。它在Windows上运行得很好 未知错误:Chrome启动失败:异常退出(未知错误:DevToolsActivePort文件不存在)(从Chrome位置/usr/bin/google-Chrome启动的进程不再运行,因此ChromeDriver假设Chrome已崩溃。) 我可以通过在ChromeOptio