如何获得使用 ChromeDriver 在 Azure 云服务中工作的 C# azure 服务

Hal*_*upa 5 c# azure selenium-chromedriver

我编写了一个使用 Selenium.WebDriver.ChromeDriver 的 C# Azure 云服务,但是当我将它部署到 Azure 时它不起作用(在本地它运行良好 - 可能是因为我安装了 Chrome)。我使用我的服务部署了 chromedriver.exe,但它失败了,因为找不到 chrome.exe。我试过部署 chrome.exe 的副本,但没有奏效。我也尝试添加 GoogleChrome nuget 包,但这也不起作用。

任何人都知道获得使用 Selenium/Chromedriver 工作的 C# azure 服务的方法吗?

小智 4

要让它在 Azure 云服务上运行,您需要做三件事

  • ChromeSetup.exe 文件包含在您的 CloudService/Roles/Role 目录中
  • 服务定义文件中的一行用于调用运行上述文件的启动脚本
  • 该启动脚本包含在您的辅助角色的项目中

要添加 ChromeSetup.exe,请右键单击云服务下您的角色名称,然后单击“添加项目”,然后找到您上次下载 chrome 安装程序的位置。

从最近的项目添加 ChromeSetup.exe 的位置示例

通过进入 ServiceDefinition.cdef 文件(下面最近的项目中的示例)来添加启动任务。

<WorkerRole name="WebReportDownloader" vmsize="Small">
<Startup>
  <Task commandLine="Initialization\Startup.cmd" executionContext="elevated" taskType="simple">
    <Environment>
      <Variable name="MyVersionNumber" value="1.0.0.0" />
    </Environment>
  </Task>
</Startup>
Run Code Online (Sandbox Code Playgroud)

上述任务调用的脚本非常简单,根据我的阅读,将任何内容记录到文本文件是可选的:

ECHO The current version is %MyVersionNumber% >> "%TEMP%\StartupLog.txt" 2>&1
START ChromeSetup.exe 
EXIT /B 0
Run Code Online (Sandbox Code Playgroud)

希望这可以减轻我在拼凑多个资源时遇到的一些悲伤......