微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

胜利的 Java + Selenium + Chromedriver服务器 2012 R2

如何解决胜利的 Java + Selenium + Chromedriver服务器 2012 R2

我使用 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);

欢迎提出任何建议。 提前非常感谢

解决方法

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。