问题描述
我使用 selenium 和 chromedriver 在 java 中编写了一个应用程序,它登录到网站然后执行操作。该应用程序是在 windows server 2012 上开发的,我从本地机器通过 RDP 连接到服务器。当我登录服务器时,一切正常(保持 rdp 连接处于活动状态)。
然后通过 Windows 任务计划程序中的计划任务定期启动应用程序。该应用程序部署在 payara 服务器上。
当我关闭 RDP 会话时出现问题。该应用程序已启动,但在 payara 控制台中,我注意到未找到网页的所有元素,好像有必要激活 chrome 窗口。我尝试使用无头模式(逐渐截图)但由于某种原因我仍然保持登录状态(就像目标站点收到无头模式一样),因此无法登录并随后执行操作。
看着堆栈。论坛,我发现这个线程可能可以解决问题,但我不清楚指示的脚本是做什么的。 LINK
我无法回答的问题是:为了在不使用 headless 模式的情况下从 windows 任务调度程序正确启动应用程序,RDP 连接是否始终处于活动状态?或者即使RDP断开连接也可以启动软件?
一些技术细节:
- ChromeDriver 88.0.4324.27
- Chromebrowser 88.0.4324.190(官方版本)
- JDK 11
Chrome 驱动程序设置:
System.setProperty("webdriver.chrome.driver","C:\\chromedriver_win32\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("excludeSwitches",Collections.singletonList("enable-automation"));
options.setExperimentalOption("useAutomationExtension",false);
options.addArguments("--disable-blink-features");
options.addArguments("--disable-blink-features=AutomationControlled");
options.addArguments("--no-sandBox");
options.addArguments("--disable-gpu");
options.setAcceptInsecureCerts(true);
options.addArguments("--start-maximized");
driver = new ChromeDriver(options);
欢迎提出任何建议。 提前非常感谢