标签: headless

如何在无头环境中测试JavaFX 2?

我正在尝试使用集成的JavaFX 2.2自动测试在Java 7u6上运行的JavaFX 2应用程序.为此,我将Jemmy3JemmyFX构建并集成到我的构建环境中.在所有相关操作系统上运行简单的冒烟测试.

作为下一步,我希望将测试作为持续部署过程的一部分来运行.由于当前CI服务器在OpenFUSE上运行,而JavaSX没有正式支持,我在虚拟机中安装了Ubuntu Server并安装了gtk2.
为了弥补缺乏完全成熟的窗口系统,我尝试在XvncXvfb上运行测试,但无济于事.

Xvnc上,测试失败了

Prism ES2 Error - nInitialize: glXChooseFBConfig failed
Run Code Online (Sandbox Code Playgroud)

而在Xvfb上,他们给了我

Xlib:  extension "RANDR" missing on display ":10".
Run Code Online (Sandbox Code Playgroud)

一篇博文建议安装gtk-engines-pixbuf以缓解第二个问题,但这只改变了错误消息中的显示数量.

现在,我召集了StackOverflow的JavaFX知识并提出要求

  • 你知道如何解决上述错误吗?
  • 您是否在(无头)CI服务器上成功运行JavaFX 2测试或机器人交互?
  • 你是如何配置该系统以使其工作的?

continuous-integration automated-tests headless xvfb javafx-2

10
推荐指数
2
解决办法
5704
查看次数

如何登录Puppeteer?

我是javascript和puppeteer的新手.我尝试了下面的登录代码并失败了.相比之下,我添加了pages2并成功了.我怎么解决呢?提前致谢.

const CREDS = require('./creds');

async function main() {
const puppeteer = require('puppeteer');
const browser = await puppeteer.launch({headless: false});

const page = await browser.newPage();
await page.setViewport({width: 1200, height: 720})
await page.goto('https://www.daum.net');
await page.waitForNavigation();
await page.type('#id', CREDS.username);
await page.type('#loginPw', CREDS.password);
await page.click('#loginSubmit');

const page2 = await browser.newPage();
await page2.setViewport({width: 1200, height: 720})
await page2.goto('https://google.com');
await page2.type('#lst-ib', 'Headless Chrome');
}

main();
Run Code Online (Sandbox Code Playgroud)

javascript headless puppeteer

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

是否可以在没有运行X服务器的情况下运行Selenium脚本?

我有一个使用selenium RC的python脚本; 特别是webdriver.

我希望将脚本作为post-commit钩子运行,最好是通过IE,Safari(如果可能),Chrome和Firefox.

但是我不确定我需要做什么,因为每次我在本地机器上运行它时,都会弹出一个浏览器.

我听说过"酱油".这是最好的解决方案吗?

python selenium headless selenium-rc selenium-webdriver

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

Jasmine无头webkit中更好的失败报告

TypeError: 'undefined' is not an object在Jasmine无头webkit中运行测试时,我遇到了一个简单的失败.但是没有提示错误发生在哪个文件或行中.有没有办法获得更清晰的失败信息?

error-reporting headless jasmine

9
推荐指数
2
解决办法
1227
查看次数

带有MAC OS的java.awt.Robot类中的无头环境错误

我正在尝试使用Robot类在我的JavaFX应用程序中捕获屏幕截图,

这是我在我的应用程序中使用的代码:

Rectangle screenBounds = new Rectangle(Screen.getPrimary().getBounds().getWidth(),
           Screen.getPrimary().getBounds().getHeight());

Robot robot = new Robot();

BufferedImage img = robot.createScreenCapture(new java.awt.Rectangle(
     (int) screenBounds.getX(), (int) screenBounds.getY(), (int) 
             screenBounds.getWidth(), (int) screenBounds.getHeight()));
Run Code Online (Sandbox Code Playgroud)

它在Windows操作系统中运行良好,但headless environmentMAC OS中显示错误Robot robot = new Robot();

java macos headless awtrobot javafx-2

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

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
查看次数

如何在带有 python 的 Selenium 中的无头 Firefox 中使用 --screenshot

使用@DebanjanB 在如何使用 python 在 Selenium 中以编程方式使 firefox 无头中的回复,我正在尝试使用他的代码并将其更改为使用 --screenshot 参数,但它不起作用。这是我的代码

from selenium import webdriver
from selenium.webdriver.firefox.options import Options

options = Options()
options.add_argument( "--screenshot test.jpg http://google.com/" )
driver = webdriver.Firefox( firefox_options=options )
driver.get('http://google.com/')
print driver.title
driver.quit()
sys.exit()
Run Code Online (Sandbox Code Playgroud)

有人可以让我知道如何在 Python 和 Firefox 中使用 --screenshot 吗?谢谢

selenium screenshot headless

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

可以打开/显示/渲染无头 Selenium 会话吗?

我知道这有点违背无头自动化的目的,但是......

我已经在无头模式下使用 Selenium 和 Chromedriver 运行自动化测试。我更愿意让它保持无头运行,但偶尔,它会遇到一个确实需要查看和交互的错误。是否可以渲染无头会话并与之交互?也许通过在非无头浏览器中复制无头浏览器?我可以通过远程调试进行连接,但开发工具似乎不允许我查看渲染的页面或与任何内容交互。

我可以截取屏幕截图,这很有帮助。但我确实在寻找交互的能力——有一些拖放元素不能很好地与 Selenium 配合使用,偶尔会导致问题。

python selenium headless browser-automation

9
推荐指数
2
解决办法
6223
查看次数

强制无头铬/铬使用实际 gpu 而不是 Google SwiftShader

我正在尝试使用无头铬(使用puppeteer)将 html打印为 pdf并且一切正常,除非 html 包含大型 png 图像(超过 10.000x10.000px),渲染页面的整个过程需要非常长的时间(最多半小时,但如果使用非无头模式只需要大约 10 秒)。经过几天的调查和调整,我得出结论,这一定是页面合成过程的问题。

以下是chrome://gpu无头和非无头模式下的页面转储。只有显著差异我注意到的是,headlessly乳宁镶边时,操纵木偶本身追加--disable-gpu-compositing--allow-pre-commit-input我相信这些负责戏剧性的服务表现下拉。

此外,在非无头模式下,chrome 看到 2 个 GPU 单元:

GPU0 VENDOR= 0x10de, DEVICE=0x1d01 *ACTIVE*
GPU1 VENDOR= 0x8086, DEVICE=0x1912
Run Code Online (Sandbox Code Playgroud)

在无头模式下只有一个:

GPU0 VENDOR= 0xffff [Google Inc.], DEVICE=0xffff [Google SwiftShader] *ACTIVE*
Run Code Online (Sandbox Code Playgroud)

这是 Vulkan 和 OpenGL ES 图形 API 的基于 CPU 的实现。

所以基本上我的问题是:

有没有办法使用实际的gpu(特别是gpu合成)使用puppeteer运行无头铬/铬,或者有没有办法在非无头模式下将页面打印为pdf?

这是我的非无头 chrome gpu 配置(页面渲染速度很快):

Canvas: Hardware accelerated
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated …
Run Code Online (Sandbox Code Playgroud)

gpu google-chrome compositing headless puppeteer

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

如何检查 Cypress 是否使用运行模式或开放模式

Cypress 是否有一个我可以获取的变量来确定它是否通过cypress openor运行cypress run

browser testing headless cypress

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