Выполнение теста C # Selenium с PhantomJs на AWS Lambda - PullRequest
0 голосов
/ 11 июля 2019

Я создал новый проект Visual Studio для функции .NET Core AWS Lambda.Я хотел бы запустить функцию Lambda, которая использует PhantomJs для проверки правильности ответа веб-сайта.

Я добавил следующие пакеты NuGet:

Nuget Packages

И создал эту базовую функцию:

public class Function
{
    public string FunctionHandler(ILambdaContext context)
    {
        IWebDriver webDriver = GetWebDriver();
        webDriver.Navigate().GoToUrl("http://test.com");
        Console.WriteLine(webDriver.Url);
        return webDriver.Url;
    }

    private IWebDriver GetWebDriver()
    {
        PhantomJSOptions options = new PhantomJSOptions();
        PhantomJSDriverService defaultService = PhantomJSDriverService.CreateDefaultService(Directory.GetCurrentDirectory());
        defaultService.HideCommandPromptWindow = true;
        defaultService.LoadImages = false;
        return new PhantomJSDriver(defaultService, options);
    }
}

Я могу заставить тест работать нормально локально, но на AWS я изо всех сил пытаюсь обойти эту ошибку:

{"errorType": "DriverServiceNotFoundException", "errorMessage": "Файл / var / task / phantomjs не существует. Драйвер можно загрузить по адресу http://phantomjs.org/download.html"," stackTrace ": [" в OpenQA.Selenium.DriverService..ctor (String servicePath, порт Int32, String driverServiceExecutableName, Uri driverServiceDownloadUrl) "," в OpenQA.Selenium.PhantomJS.PhantomJSDriverService..ctor (String executetablePath, String executetableFileName, порт Int32.CheverF), at) в C: \ Git \ LambdaTest \ HealthCheck \ Function.cs: строка 28 "," в HealthCheck.Function.FunctionHandler (контекст ILambdaContext) в C: \ Git \ LambdaTest \ HealthCheck \ Function.cs: строка 20 ", "at lambda_method (Closure, Stream, Stream, LambdaContextInternal)"]}

Файл phantomjs.exe включен в загруженный пакет, но я не знаю, какой путь мне нужно указать

...