标签: headless-browser

如何在渲染截图时使PhantomJS包含背景图像?

我正在使用PhantomJS截取网页的截图,其中包含page.render()方法,详见https://github.com/ariya/phantomjs/wiki/Screen-Capture.

除了背景图像,它工作正常 所有somtimes显得空白.如果您访问http://screener.brachium-system.net/并输入http://www.bing.com/作为URL,您可以看到问题的示例,背景图像应该有一个很大的空白区域是.

有没有办法强制显示背景图像?

javascript headless headless-browser phantomjs

9
推荐指数
1
解决办法
1万
查看次数

PhantomJS,但不是无头?

有没有办法获得PhantomJS(或类似)正在渲染的实时视图?

我想在与其所针对的页面交互(或至少看到一个屏幕截图)的同时开发我的自动化脚本.

headless-browser phantomjs

9
推荐指数
1
解决办法
3636
查看次数

使用Nodejs Selenium Webdriver实现无头自动化

我正在使用一个必须部署在ubuntu服务器内的自动化工具,我不知道是否可以使用Selenium Webdriver以静默方式使用chrome.

到目前为止,我已经尝试了以下代码,但它一直打开浏览器(我在Windows 10中进行测试):

    var webdriver = require('selenium-webdriver'),
        chrome    = require('selenium-webdriver/chrome')
        By        = webdriver.By,
        until     = webdriver.until,
        options   = new chrome.Options();
        options.addArguments('--headless');
    var path = require('chromedriver').path;
    var service = new chrome.ServiceBuilder(path).build();
        chrome.setDefaultService(service);
    var driver = new webdriver.Builder().forBrowser('chrome').withCapabilities(options.toCapabilities()).build();

driver.get('https://www.google.com');
Run Code Online (Sandbox Code Playgroud)

请注意,addArguments(' - headless')是应该使导航无声的参数,但显然它不起作用或者我遗漏了一些我不知道的东西.

如果有一些我遗失的东西,请告诉我,因为我不知道我想做什么是可能的,因为这是我使用这种技术的第一次.

谢谢.

node.js headless-browser selenium-webdriver

9
推荐指数
3
解决办法
1万
查看次数

Selenium C中的无头Firefox#

我想运行firefox无头.

不隐藏浏览器窗口或在虚拟桌面中打开它,Firefox通过使用"-headless"标志支持无头模式.

问题是我知道如何在Chrome中执行此操作但不在Firefox中.

我的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;

namespace MyApp {
public partial class Form1: Form {
    public Form1() {
        InitializeComponent();
    }

    private void StartBtn_Click(object sender, EventArgs e) {

        IWebDriver driver;
        FirefoxOptions options = new FirefoxOptions();
        options.AddArguments("--headless");
        driver = new FirefoxDriver(options);
    }
}
}
Run Code Online (Sandbox Code Playgroud)

我的WinForm应用程序只有一个名为StartBtn的按钮.单击按钮时,Firefox应无头运行,但会在正常窗口中打开.


更新 我将firefox更新为56.0.1

现在我得到一个不同的错误:

WebDriver.dll中发生未处理的"OpenQA.Selenium.WebDriverException"类型异常

附加信息:预期的浏览器二进制位置,但无法在默认位置找到二进制文件,未提供'moz:firefoxOptions.binary'功能,并且在命令行上未设置二进制标志

c# firefox selenium headless headless-browser

9
推荐指数
1
解决办法
6153
查看次数

如何将 Puppeteer 指向本地图像/字体?

我想使用 Puppeteer 从 HTML 字符串生成图像。现在我有这样的事情:

const html = _.template(`
<html>
<body>
  <div class="testing">
    <h1>Hello {{ test }}!</h1>
    <img src="./1.jpg" alt="alt text" />
  </div>
</body>
</html>
`)

const browser = await puppeteer.launch()
const page = await browser.newPage()
const data = html({
  test: 'World'
})
await page.setContent(data)
const take = await page.$('.testing')
await take.screenshot({
  path: 'screenshot.png',
  omitBackground: true
})
Run Code Online (Sandbox Code Playgroud)

问题是,Puppeteer 不加载图像,我不知道如何将它指向他?该图像与脚本位于同一目录中。

除了图像,我想加载自定义字体,怎么做?

headless-browser puppeteer

9
推荐指数
1
解决办法
3605
查看次数

c#无头浏览器,支持crawler的javascript

任何人都可以建议支持cookie和authomatically javascript执行的无头浏览器吗?

.net c# webclient headless-browser

8
推荐指数
2
解决办法
1万
查看次数

使用QWebEngine渲染图像

我想QWebKitQWebEngine无头渲染器代替.我初始化页面load()并连接一个插槽loadFinished()以生成最终的.PNG图像.这曾经工作得很好,WebKit但失败了QWebEngine.

代码如下......

_webView = new QWebEngineView();

....

// Render the HTML to an image
QPainter painter(&image);
_webView->page()->view()->render(&painter);
painter.end();
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

"请求没有窗口句柄的窗口小部件的共享上下文""QOpenGLWidget:如果没有与toplevel共享的上下文,则不能使用".

有没有人有使用渲染屏幕的例子QWebEngine

qt headless-browser qwebkit qtwebengine

8
推荐指数
2
解决办法
3364
查看次数

ChromeHeadless无法启动stdout /无法使用PhantomJS/Karma启动ChromeHeadless

我目前正在使用PhantomJS和Karma运行测试来测试Angular.js应用程序.随着最近发布的ChromeHeadless,我们开始使用ChromeHeadless测试浏览器而不是默认的PhantomJS浏览器.

我目前安装了karma-chrome-launcher2.1.0.

当我运行我的测试时,我会遇到几个不同的错误,其中的提取列表如下:

Cannot start ChromeHeadless
    [0510/113948.371837:ERROR:resource_bundle.cc(767)] Failed to load /Applications/Google Chrome.app/Contents/Versions/58.0.3029.110/Google Chrome Framework.framework/Versions/A/resources.pak
Some features may not be available.

ChromeHeadless stdout:
10 05 2017 11:39:48.428:ERROR [launcher]: ChromeHeadless stderr: [0510/113948.371837:ERROR:resource_bundle.cc(767)] Failed to load /Applications/Google Chrome.app/Contents/Versions/58.0.3029.110/Google Chrome Framework.framework/Versions/A/resources.pak
Some features may not be available.

ChromeHeadless stderr: [0510/113948.490917:ERROR:resource_bundle.cc(767)] Failed to load /Applications/Google Chrome.app/Contents/Versions/58.0.3029.110/Google Chrome Framework.framework/Versions/A/resources.pak
Some features may not be available.

ChromeHeadless failed 2 times (cannot start). Giving up.
npm ERR! Test failed.  See above for more details.
Run Code Online (Sandbox Code Playgroud)

我曾尝试运行一些命令故宫,也就是npm …

browser google-chrome headless-browser karma-runner

8
推荐指数
1
解决办法
1426
查看次数

Chrome Headless不起作用

我已经从developers.google中了解到有关Chrome Headless的信息,我们可以在没有用户界面的情况下运行Google.从该链接引用:

无头Chrome在Chrome 59中发布.这是在无头环境中运行Chrome浏览器的一种方式.基本上,运行没有铬的Chrome!它将Chromium和Blink渲染引擎提供的所有现代Web平台功能引入命令行.

为什么这有用?

无头浏览器是自动测试和服务器环境的绝佳工具,您不需要可见的UI shell.例如,您可能希望针对真实网页运行某些测试,创建PDF,或者仅检查浏览器如何呈现URL.

这是非常好的功能,所以我做了一些很酷的功能实验.想法是通过从Windows命令提示符调用chrome.exe来将快照作为文档站点,如下所示:

chrome --headless --disable-gpu --screenshot https://www.chromestatus.com/
Run Code Online (Sandbox Code Playgroud)

做了几次并遵循这些网站的指示.我一无所获.我没有得到任何带有名称的图片或截图,screenshot.png因为之前提到过它Running with --screenshot will produce a file named screenshot.png in the current working directory.

从这份文件中也谈到版本,

警告:Chrome 59中的Mac和Linux上提供无头模式.Chrome 60中将提供Windows支持.要查看您的Chrome版本,请打开chrome:// version.

在使用之前的建议进行一些检查后,我chrome://version在Windows x64计算机上的Chrome上运行并获得了一些结果:

Google Chrome   62.0.3202.94 (Official Build) (64-bit) (cohort: Stable)
Revision    4fd852a98d66564c88736c017b0a0b0478e885ad-refs/branch-heads/3202@{#789} 
Run Code Online (Sandbox Code Playgroud)

怎么了?我错过了什么?谢谢

google-chrome headless-browser google-chrome-headless

8
推荐指数
1
解决办法
3066
查看次数

切换标签时,带有无头 chrome 的 Selenium 无法获取 url

我目前正在使用 Specflow 运行 Selenium。

我的一个测试点击了一个按钮,触发了 pdf 文件的下载。该文件会在新选项卡中自动打开,然后测试会在其中获取 url 并将引用的文件直接下载到 selenium 项目。当 chrome 驱动程序正常运行但在无头浏览器上失败并出现以下错误时,整个过程完美运行:

到远程 WebDriver 服务器的 URL http://localhost:59658/session/c72cd9679ae5f713a6c857b80c3515e4/url的 HTTP 请求在 60 秒后超时。-> 请求已中止:操作已超时。

尝试运行时出现此错误 driver.Url

driver.Url在代码中的其他地方调用工作。只有在无头浏览器切换选项卡后才会失败。(是的,我正在使用驱动程序切换窗口)

作为参考,如果不单击第一页上的按钮并切换选项卡,我将无法获取此 url,因为该 url 是在单击按钮后自动生成的。

selenium headless-browser selenium-chromedriver selenium-webdriver google-chrome-headless

8
推荐指数
1
解决办法
860
查看次数