首页 > 解决方案 > 当应用程序被任务调度程序触发时,FindElement() 不工作

问题描述

我使用 C# 中的 Selenium 框架使用 VS 2017 Professional IDE 创建了一个控制台应用程序。这是一个自动化的应用程序,打开一个 IE 浏览器执行一些操作,并在执行完所有操作后关闭浏览器。我们在本地完成了所有正面和负面的测试(在 VS 上以调试模式运行并且没有调试模式)并且它按预期工作。

我需要在任务调度程序中配置应用程序。在任务计划程序中,当我选择“仅在用户登录时运行”时,在“常规”选项卡中,我可以看到控制台窗口正在启动,随后启动 IE 浏览器并执行操作。简而言之,它正在工作。

图 1

问题是当我在“常规”选项卡中选择“无论用户是否登录时运行”选项时,应用程序在后台运行(我看不到控制台窗口和浏览器启动,但正在生成日志。) . 应用程序为以下语句提供超时异常:

driver.FindElement(By.Id("FileUploadButtonControl")).SendKeys(path); driver.FindElement(By.Id("ButtonName")).Click();

图 2

我正在使用的 Nuget 包:

  1. Selenium.WebDriver v4.0.0

  2. Selenium.WebDriver.IEDriver v3.150。

浏览器 - IE 版本 11

异常详情:

  1. 对 URL http://localhost:63638/session/335b5515-69f8-4340-943d-ca06b1c991da/element/6c289ae0-e500-42dc-82bc-1b77590319eb/value的远程 WebDriver 服务器的 HTTP 请求在 120 秒后超时。- > 获取driver.FindElement(By.Id("FileUploadButtonControl")).SendKeys(path) 的异常;

  2. 对 URL http://localhost:62712/session/4a553643-2690-4984-b2ad-2d74c39e370c/window的远程 WebDriver 服务器的 HTTP 请求在 120 秒后超时。-> 获取driver.FindElement(By.Id("ButtonName")).Click() 的异常;

如果有人能让我们摆脱这种棘手的局面,那将是非常有帮助的。

标签: c#seleniuminternet-explorerselenium-webdriver

解决方案


推荐阅读