在AWS Lambda上使用PhantomJs运行C#Selenium测试

时间:2019-07-11 07:25:17

标签: c# amazon-web-services selenium aws-lambda phantomjs

我为.NET Core AWS Lambda函数创建了一个新的Visual Studio项目。我想运行一个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(字符串servicePath,Int32端口,字符串driverServiceExecutableName,Uri   driverServiceDownloadUrl)“,       “在OpenQA.Selenium.PhantomJS.PhantomJSDriverService..ctor(字符串可执行文件路径,字符串可执行文件名,Int32端口)”,       “位于C:\ Git \ LambdaTest \ HealthCheck \ Function.cs:line中的HealthCheck.Function.GetWebDriver()   28“,       “在HealthCheck.Function.FunctionHandler(ILambdaContext上下文)中   C:\ Git \ LambdaTest \ HealthCheck \ Function.cs:line   20“,       “在lambda_method(Closure,Stream,Stream,LambdaContextInternal)”]}

phantomjs.exe文件包含在上传的软件包中,但是我不知道需要提供什么路径?

0 个答案:

没有答案