2

Seleniumテストフレームワークを使用するアプリケーションがあります。このアプリケーションはWindowsServer2012で実行され、Windowsタスクスケジューラを介して定期的に実行されます。リモートデスクトップを介してサーバーに接続します。

この問題は、スケジュールされたタスクの設定オプション「ユーザーがログオンしているかどうかに関係なく実行する」を設定すると発生します。私のアプリケーションはこのjavascriptコードで正しく実行を開始しますが、エラー例外ですぐに終了します-それは以下の行にマークされています。アプリケーションを正常に起動すると、すべて正常に動作します。残念ながら、誰もログオンしていなくても実行できるアプリケーションを作成する必要があります。誰もこの問題にすでに遭遇していませんか?

これは私のコードです:

public Bitmap MakeBitmap(Uri url)
{
    driver = MakeFirefoxDriver();
    driver.Navigate().GoToUrl(url.AbsoluteUri);

    // In this command, an exception occurs.
    driver.ExecuteScript("document.body.style.overflow = 'hidden'")

    Thread.Sleep(TimeSpan.FromSeconds(SleepTime));
    var screenshot = driver.GetScreenshot();
    return new Bitmap(Image.FromStream(new MemoryStream(screenshot.AsByteArray)));
}

private FirefoxDriver MakeFirefoxDriver() 
{
    var profile = new FirefoxProfile { EnableNativeEvents = true };
    var capabilityValue = new List<string> { "-width", "500", "-height", "340" };
    var capabilities = DesiredCapabilities.Firefox();
    capabilities.SetCapability("initial", capabilityValue);
    capabilities.SetCapability(FirefoxDriver.ProfileCapabilityName, profile);
    return new FirefoxDriver(capabilities);
}

例外は次のようになります。

Exception log: No response from server for url http://localhost:7062/hub/session/......
StackTrace: at OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest
request) at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String
driverCommandToExecute, Dictionary`2 parameters) at ...
4

1 に答える 1

1

私はWindows7でタスクスケジューラを使用しています。うまくいけば同じです。スケジューラの[全般]タブで、[ユーザーがログオンしているかどうかに関係なく実行する]をクリックします。この設定では、プロパティを保存するたびにパスワードを入力する必要があります。実行すると、画面に何も表示されません。私はこれらのフォーラムで、このモードで実行しているときに、画像を取得しようとすると空白になることを読みました。

于 2012-09-05T01:19:58.950 に答える