【问题标题】:Java + Selenium + Chromedriver on win. Server 2012 R2Java + Selenium + Chromedriver 获胜。服务器 2012 R2
【发布时间】: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


    【解决方案1】:

    【讨论】:

    • 非常感谢。稍后我会试一试,如果它解决了,我会告诉你。
    • 你好,我试过了,将值添加到 Windows 服务器注册表,但它没有改变任何东西。当我从远程桌面启动应用程序时,一切正常,当我终止连接并让程序自行启动时,它出现此错误,未找到元素:“预期条件失败:等待所有元素的可见性位于By.xpath”或“没有这样的元素:无法找到元素”。
    猜你喜欢
    • 1970-01-01
    • 2018-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多