首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行无头Chrome或在VSTS中安装用于硒的

运行无头Chrome或在VSTS中安装用于硒的
EN

Stack Overflow用户
提问于 2017-11-06 07:50:35
回答 2查看 1.6K关注 0票数 1

我试图使用Java + Maven项目在VSTS上运行一些chromedriver测试。因为我将使用Chrome扩展,所以我无法运行无头Chrome,因为它不受支持。我知道默认情况下Chrome不是安装在“宿主VS2017”VM上,所以我尝试通过下面的powershell脚本安装它:

代码语言:javascript
复制
$Path = $env:TEMP; $Installer = "chrome_installer.exe"; 
Invoke-WebRequest "http://dl.google.com/chrome/install/375.126/chrome_installer.exe" -OutFile $Path\$Installer; 
Start-Process -FilePath $Path\$Installer -Args "/silent /install" -Verb RunAs -Wait; 
Remove-Item $Path\$Installer

但是,这会导致以下错误:

2017-11-06T01:23:18.4054541Z ##command。'd:\a\1\s\install_chrome_win.ps1‘2017-11-06T01:23:23.6299793Z启动进程:该命令由于错误而无法运行:此操作需要一个交互式窗口站。D:\a\1\s\install_chrome_win.ps1:1 char:‎169 2017-11-06T01:23:23.6299793Z +. $Installer;Start-Process -FilePath $Path\$Installer -Args "/silent /. 2017-11-06T01:23:23.6299793Z +[section]Finishing: PowerShell Script

虽然我已经指定了“静默”和“安装”选项,但似乎仍然需要某种交互输入。我知道有一个在线.NET教程,它允许运行chrome测试,但是我不能使用它,因为我有一个Java + Maven项目。

我的问题是: 1.是否有可能让“宿主VS2017”VM运行“无头”测试? 2.我需要做哪些额外的配置才能使上面的powershell脚本正常工作?有什么更好的脚本我应该用吗?

EN

回答 2

Stack Overflow用户

发布于 2018-03-16 22:34:10

托管的构建代理具有预先安装的Selenium功能。不必执行安装程序,您可以通过访问环境变量来获取可执行文件的路径,从而使用现有的浏览器。

来自微软

使用宿主代理时,应使用预先安装在托管代理上的Selenium web驱动程序,因为它们与宿主代理映像上安装的浏览器版本兼容。这些驱动程序的文件路径可以从环境变量IEWebDriver (Internet )、ChromeWebDriver (Google )和GeckoWebDriver (火狐)中获得。例如, driver =新ChromeDriver(Environment.GetEnvironmentVariable("ChromeWebDriver"));

票数 2
EN

Stack Overflow用户

发布于 2017-11-07 05:57:44

您可以在具有服务模式的代理上运行Java无头铬硒测试,但是该铬没有安装在托管代理上,也不能安装在托管代理上。

因此,我建议您可以安装安装了Chrome的私有构建代理,并在该代理上运行Java。

无头硒测试的简单代码:

代码语言:javascript
复制
System.setProperty("webdriver.chrome.driver", "[chromedriver.exe path]");
        ChromeOptions options = new ChromeOptions();
        options.addArguments("headless");
        //options.setBinary("C:/Program Files/Google/Chrome/Application/chrome.exe"); 
        ChromeDriver driver=new ChromeDriver(options);

        driver.get("http://www.google.com");
        WebElement searchBox = driver.findElement(By.name("q"));
          searchBox.sendKeys("ChromeDriver");
          searchBox.submit();
        driver.quit();

另一方面,一个关于在托管的生成服务器上安装无头铬的用户之声。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47132089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档