2017-09-15 100 views
1

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

任何人都知道一种方法来获得使用Selenium/Chromedriver工作的C#天蓝色服务?

回答

2

三件事情你需要得到这个在一个蓝色的cloudservice包含在CloudService /角色/角色目录

  • ChromeSetup.exe档案文件运行
  • 在服务定义文件中的行调用运行上述文件
  • 这包括在你的Worker角色的项目启动脚本

要添加ChromeSetup.exe档案,右键点击你的角色好处名的启动脚本运行云服务,只需“添加项目”并查找最后下载Chrome安装程序的位置。从下面最近的一个项目的例子 -

Example of Where to Add ChromeSetup.exe from recent project

启动任务是通过进入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> 

上述任务调用的脚本是非常简单和记录任何东西到一个文本文件是从我的阅读可选:

ECHO The current version is %MyVersionNumber% >> "%TEMP%\StartupLog.txt" 2>&1 
START ChromeSetup.exe 
EXIT /B 0 

希望这可以节省你一些我跑进而拼凑的悲痛几个资源...

1

我发现了另一种方式做到这一点,而无需安装Chrome - 而不是使用Chrome我最终使用Chromium。

为此,我刚刚下载的存档铬从https://chromium.woolyss.com/download/则已经将其解压到我的二进制文件目录 - 这仍然具有的chrome.exe二元但并不需要安装