我是新的硒和有一些问题。
我正在使用与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应该正确安装。有人知道吗?
似乎无法创建分辨率缓存,这是默认情况下在以下路径中创建的属性文件:~/.cache/selenium
。你可以尝试手动创建该路径(尽管WebDriverManager应该能够在它不存在时创建)。
在任何情况下,要正确调试它,您需要检查WebDriverManager跟踪。为此,您需要在您的项目类路径中包含Logback配置文件(例如,像这样)。该文件的名称应该是src/test/resources/logback-test.xml
(如果您只想要测试日志)或src/test/resources/logback.xml
(如果您想要测试和应用程序代码的日志)。然后,您可以使用以下行将级别设置为TRACE
:
<logger name="io.github.bonigarcia" level="TRACE" />
关于使用SLF4J和Logback进行日志记录的更多信息,您可以查看以下教程。