我正在尝试使用集成的JavaFX 2.2自动测试在Java 7u6上运行的JavaFX 2应用程序.为此,我将Jemmy3和JemmyFX构建并集成到我的构建环境中.在所有相关操作系统上运行简单的冒烟测试.
作为下一步,我希望将测试作为持续部署过程的一部分来运行.由于当前CI服务器在OpenFUSE上运行,而JavaSX没有正式支持,我在虚拟机中安装了Ubuntu Server并安装了gtk2.
为了弥补缺乏完全成熟的窗口系统,我尝试在Xvnc和Xvfb上运行测试,但无济于事.
在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知识并提出要求
continuous-integration automated-tests headless xvfb javafx-2
我是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) 我有一个使用selenium RC的python脚本; 特别是webdriver.
我希望将脚本作为post-commit钩子运行,最好是通过IE,Safari(如果可能),Chrome和Firefox.
但是我不确定我需要做什么,因为每次我在本地机器上运行它时,都会弹出一个浏览器.
我听说过"酱油".这是最好的解决方案吗?
TypeError: 'undefined' is not an object在Jasmine无头webkit中运行测试时,我遇到了一个简单的失败.但是没有提示错误发生在哪个文件或行中.有没有办法获得更清晰的失败信息?
我正在尝试使用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 environment在MAC OS中显示错误Robot robot = new Robot();
我想运行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'功能,并且在命令行上未设置二进制标志
使用@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 和 Chromedriver 运行自动化测试。我更愿意让它保持无头运行,但偶尔,它会遇到一个确实需要查看和交互的错误。是否可以渲染无头会话并与之交互?也许通过在非无头浏览器中复制无头浏览器?我可以通过远程调试进行连接,但开发工具似乎不允许我查看渲染的页面或与任何内容交互。
我可以截取屏幕截图,这很有帮助。但我确实在寻找交互的能力——有一些拖放元素不能很好地与 Selenium 配合使用,偶尔会导致问题。
我正在尝试使用无头铬(使用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) Cypress 是否有一个我可以获取的变量来确定它是否通过cypress openor运行cypress run?
headless ×10
selenium ×4
javafx-2 ×2
puppeteer ×2
python ×2
awtrobot ×1
browser ×1
c# ×1
compositing ×1
cypress ×1
firefox ×1
gpu ×1
jasmine ×1
java ×1
javascript ×1
macos ×1
screenshot ×1
selenium-rc ×1
testing ×1
xvfb ×1