试图获得AWS Lambda函数以在.NET内核上运行Selenium。下面是代码:
public string FunctionHandler(ILambdaContext context)
{
context.Logger.LogLine("Entering function");
try
{
var driver = new InternetExplorerDriver();
context.Logger.LogLine("Navigating to URL");
driver.Navigate().GoToUrl("http://www.google.com/");
context.Logger.LogLine("Returning Done");
return "Done";
}
catch (Exception e)
{
context.Logger.LogLine("Oops: " + e);
return "Failed";
}
}
OpenQa.Selenium.WebDriverException:无法在http://localhost:41663/at OpenQa.Selenium.DriverService.start()at OpenQa.Selenium.Remote.DriverServiceCommandToExecute(命令commandToExecute)at OpenQa.Selenium.Remote.RemoteWebDriver.Execute(字符串driverCommandToExecute,字典`2参数)at OpenQa.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilitiesext上下文)
这是可能的,但到目前为止,我只是运气让它与Chrome一起工作。AWS Lambda正在运行Amazon Linux的裸版。如果您想在其上运行一些超出基本内容的东西,您必须打包一个zip文件,并将其与所需的所有二进制文件一起部署。不幸的是,我怀疑IE是否会在AWS Lambda上运行。然而,它有希望运行在Azure的等价服务上,该服务使用他们所谓的“Windows容器”。
您必须指定Chrome二进制文件在包含您的函数的lambda运行时文件系统中的位置,该函数将是/var/task/。这是一个Node.js示例,说明您正在尝试执行的操作,但使用的是ChromeDriver。
'use strict';
exports.handler = (event, context, callback) => {
var webdriver = require('selenium-webdriver');
var chrome = require('selenium-webdriver/chrome');
var builder = new webdriver.Builder().forBrowser('chrome');
var chromeOptions = new chrome.Options();
const defaultChromeFlags = [
'--headless',
'--disable-gpu',
'--window-size=1280x1696', // Letter size
'--no-sandbox',
'--user-data-dir=/tmp/user-data',
'--hide-scrollbars',
'--enable-logging',
'--log-level=0',
'--v=99',
'--single-process',
'--data-path=/tmp/data-path',
'--ignore-certificate-errors',
'--homedir=/tmp',
'--disk-cache-dir=/tmp/cache-dir'
];
chromeOptions.setChromeBinaryPath("/var/task/lib/chrome");
chromeOptions.addArguments(defaultChromeFlags);
builder.setChromeOptions(chromeOptions);
var driver = builder.build();
driver.get(event.url);
driver.getTitle().then(function(title) {
console.log("Page title for " + event.url + " is " + title)
callback(null, 'Page title for ' + event.url + ' is ' + title);
});
driver.quit();
};
我正在尝试使用iTextSharpLGPLv2将HTML文档转换为PDF。核心nuget库。 我面临的问题是,HTMLWorker不再支持iTextSharper。 下面是我的代码。 任何替代iTextSharper的产品。净核心?或者用其他方法来解决这个问题?
我已经为主项目和测试创建了.NET Standard1.6类库,并复制了代码。我将单元测试改为使用xUnit属性和断言,而不是NUnit。 除此之外,我基本上遵循了文档中的说明,因此添加了以下NuGet包: microsoft.net.test.sdk xUnit xunit.runner.visualstudio
运行代码后,我检查http://localhost:8983/solr/#/~cores/core1并看到1000000个索引文档。 然后我添加了另一个核心(以与核心1相似的方式命名为核心2),然后再次运行该作业,这一次,我看到核心2没有显示任何文档,只有核心1仍然显示。 有没有人可以建议一下如何使用solr的内核来分发和存储文档,这样我就可以更快地索引数据,我的假设是,如果增加内核的数量,索引的
我想发送动态对象,如 作为HTTP POST消息的主体。所以我试着写 但我找不到方法 所以我尝试添加微软。AspNetCore.http://http.扩展包project.json并添加 to使用子句。然而,这对我没有帮助。 那么,在ASP. NET Core中使用JSON主体发送POST请求的最简单方法是什么?
我向我的.NET核心应用程序添加了一个app.config文件,如下所示 现在我在下面发现了一个错误 消息“无法加载在应用程序配置文件中注册得实体框架提供程序类型'System.Data.Entity.SqlServer.SqlProviderServices、EntityFramework.SqlServer',以固定名称为'System.Data.SqlClient'得ADO.NET提供程序.