使用Selenium WebDriver.dll的Azure函数

Ron*_*nin 4 c# selenium azure selenium-webdriver azure-functions

我试图从Azure Function C#代码使用Selenium WebDriver.dll,并且在实例化WebDriver时遇到以下问题。

错误:

2017-10-16T20:02:25.169执行功能时发生异常:Functions.fnTestSelenium。Microsoft.Azure.WebJobs.Script:发生一个或多个错误。mscorlib:该路径不是合法格式.2017-10-16T20:02:25.278功能已完成(失败,Id = 2fcb928f-ee39-4cfe-99f2-4be2d57e91b2,持续时间= 843ms)

#r 使用System.Net的“ D:\ home \ site \ wwwroot \ fnTestSelenium \ bin \ WebDriver.dll”;

using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
    log.Info("C# HTTP trigger function processed a request.");

    IWebDriver driver=new FirefoxDriver();
    // parse query parameter
    string name = req.GetQueryNameValuePairs()
        .FirstOrDefault(q => string.Compare(q.Key, "name", true) == 0)
        .Value;

    // Get request body
    dynamic data = await req.Content.ReadAsAsync<object>();

    // Set name to query string or body data
    name = name ?? data?.name;

    return name == null
        ? req.CreateResponse(HttpStatusCode.BadRequest, "Please pass a name on the query string or in the request body")
        : req.CreateResponse(HttpStatusCode.OK, "Hello " + name);
}
Run Code Online (Sandbox Code Playgroud)

And*_*NET 7

我认为在Azure Functions上运行Selenium不会取得太大成功。

Web Services和移动应用程序之类的Azure功能在应用程序服务中运行。App Service在称为沙盒的安全环境中运行,它具有一定的限制。其中包括使用GDI +。

您可以看到限制列表以及不支持的框架列表https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox#unsupported-frameworks

如果您检查底部,您将在不支持的列表中看到Selenimum:

不支持的其他方案:

PhantomJS / Selenium:尝试连接到本地地址,也使用GDI +。