【发布时间】:2021-02-25 12:13:43
【问题描述】:
我使用 selenium 和 chromedriver 在 java 中编写了一个应用程序,该应用程序登录到网站然后执行操作。该应用程序是在 Windows Server 2012 上开发的,我正在从本地计算机通过 RDP 连接到服务器。当我登录服务器时,一切运行正常(保持 rdp 连接处于活动状态)。
然后,应用程序会通过 Windows 任务调度程序中的计划任务定期启动。该应用程序部署在 payara 服务器上。
当我关闭 RDP 会话时出现问题。应用程序已启动,但在 payara 控制台中,我注意到未找到网页的所有元素,好像必须激活 chrome 窗口。我尝试使用无头模式(逐渐截屏),但由于某种原因我仍然处于登录状态(好像目标站点接收到无头模式),因此无法登录并随后执行操作。
查看堆栈。论坛,我发现这个线程可能可以解决问题,但我不清楚指示的脚本是做什么的。 LINK
我无法回答的问题是:为了在不使用无头模式的情况下从 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);
欢迎提出任何建议。 提前非常感谢
【问题讨论】:
标签: java selenium selenium-chromedriver vps rdp