标签: headless

Puppeteer 旧的 Headless 弃用警告:

const bot = require("puppeteer");
const fs = require("fs");
const botConfiguration ={
headless:false, 
executablePath:"C:/Program Files/Google/Chrome/Application/chrome.exe",
userDataDir: "C:/Users/bot/AppData/Local/Google/Chrome/User Data/",
args: ['--profile-directory=Profile 28']
};
async function runBot() {
const chromeBrowser = await bot.launch(botConfiguration)
const chromeBrowserPage = await chromeBrowser.newPage()
await chromeBrowserPage.goto("https://www.google.com/")
};
runBot();
Run Code Online (Sandbox Code Playgroud)

Puppeteer 旧的 Headless 弃用警告:

在不久的将来,headless: trueChrome 将默认使用新的 Headless 模式,而不是旧的 Headless 实现。有关更多信息,请参阅https://developer.chrome.com/articles/new-headless/。考虑尽早选择加入headless: "new"如果您遇到任何错误,请向https://github.com/puppeteer/puppeteer/issues/new/choosepuppeteer.launch() 报告。

我不想在我的终端中看到这个错误............

Puppeteer 旧的 Headless 弃用警告:

automation headless headless-browser google-chrome-headless puppeteer

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

maven - > ant - > jsmoothgen:如何提供-Djava.awt.headless = true?

我有一个情况,我们用JSmooth包装一个jar来获得一个合适的exe文件.

传统上这是由ant构建的,并且作为我们一般的mavenification的一部分,当前的短期解决方案是使用maven-antrun-plugin来设置属性并调用ant.

不幸的是,这种方法在Unix上构建时失败(因为没有可用的X11显示)并且解决方案是调用JVM -Djava.awt.headless=true.我想在我的pom.xml中执行此操作,但无法确定在何处执行此操作.

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <phase>package</phase>
            <configuration>
                <target>
                    <!-- create one-jar and exefy it -->
                    <property name="maven.project.build.finalName" value="${project.build.finalName}" />
                    <!-- note: fails on headless Linux for now -->
                    <ant />
                </target>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)

可以直接分叉新的JVM,但不要依赖平台细节.

我该怎么做才能正确?

ant headless maven jsmooth

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

在无头centOS上使用firefox 23无法在60秒内获得稳定的firefox连接

我正试图让黄瓜测试在无头的centOS盒子上运行.我已经安装了Xvfb,firefox和我的测试套件,它们在我们的无头(头?)机器上运行.

版本

CentOS: 6.2
firefox: 23.0.1
headless: 1.0.1
selenium-webdriver: 2.35.0
watir-webdriver: 0.6.4
ruby: 1.9.3
Run Code Online (Sandbox Code Playgroud)

在irb:

1.9.3-p448 :001 > require 'watir-webdriver'
 => true
1.9.3-p448 :002 > require 'headless'
 => true
1.9.3-p448 :004 > headless = Headless.new
 => #<Headless:0x000000025e0860 @display=99, @autopick_display=true, @reuse_display=true, @dimensions="1280x1024x24", @video_capture_options={}, @destroy_at_exit=true>
1.9.3-p448 :005 > headless.start
 => #<Proc:0x000000025e5180@/usr/local/rvm/gems/ruby-1.9.3-p448/gems/headless-1.0.1/lib/headless.rb:175>
1.9.3-p448 :006 > b = Watir::Browser.new(:firefox)
Selenium::WebDriver::Error::WebDriverError: unable to obtain stable firefox connection in 60 seconds (127.0.0.1:7055)
        from /usr/local/rvm/gems/ruby-1.9.3-p448/gems/selenium-webdriver-2.35.0/lib/selenium/webdriver/firefox/launcher.rb:79:in `connect_until_stable'
        from /usr/local/rvm/gems/ruby-1.9.3-p448/gems/selenium-webdriver-2.35.0/lib/selenium/webdriver/firefox/launcher.rb:37:in `block in launch'
        from /usr/local/rvm/gems/ruby-1.9.3-p448/gems/selenium-webdriver-2.35.0/lib/selenium/webdriver/firefox/socket_lock.rb:20:in `locked'
        from /usr/local/rvm/gems/ruby-1.9.3-p448/gems/selenium-webdriver-2.35.0/lib/selenium/webdriver/firefox/launcher.rb:32:in `launch' …
Run Code Online (Sandbox Code Playgroud)

ruby headless cucumber watir-webdriver selenium-webdriver

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

带有可选GUI的C#类?

我正在寻找一种方法来拥有一个C#类,主要是在没有任何GUI的情况下运行,作为Windows服务的一部分,可选地显示在WPF Canvas控件上.

我最初的想法是让对象扩展一个WPF控件,但这需要服务器端(Windows服务)引用这些库,这是不理想的.我的第二个想法是实现Factory模式,其中包装器将为对象生成GUI,但是如果需要,我希望对象能够定义它自己的设计(理想情况下具有代码隐藏的XAML).

这些类通过MEF从插件目录加载,并基于基于XML的设置文件进行实例化.

我想到了只有两个单独的类的可能性,但这似乎增加了插件制作过程的复杂性和冗余(可能会有几个这样).

思考?

编辑:这些类可以被认为是Windows Workflow Foundation Activities.它们通过GUI配置并在服务器上运行.

c# wpf headless

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

不知道为什么要使用无头浏览器

我们只是在不使用无头浏览器的情况下实现了CI,而是实际的浏览器.因此,一旦开发团队检查了新代码.我们的烟雾自动化代码在自动机器上作为后台进程运行并发送结果.如果有任何失败,它会发送截图.我们没有得到的是,使用无头浏览器进行上述处理的优势是什么.我们需要我们的烟雾脚本来获得这种覆盖.比如使用Select,Calendar,Uploaded等控件提交一个可以在5分钟内运行的大型表单,而不是简单的网页加载.

c# selenium webdriver headless selenium-webdriver

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

哪些驱动程序支持"无浏览器"/"无头"测试?

实际上我想在不想打开任何浏览器的服务器上运行我的selenium代码.但我很困惑哪个webdriver用于执行所有任务的服务器(我从某个站点下载一些文件并存储在我的服务器中).

selenium webdriver headless headless-browser selenium-webdriver

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

在 Python 中,如何通过保存的浏览器会话使 Selenium 无头工作?

我正在尝试绕过 web.whatsapp.com 二维码扫描页面。这是我到目前为止使用的代码:

options = webdriver.ChromeOptions();
options.add_argument('--user-data-dir=./User_Data')
driver = webdriver.Chrome(options=options)
driver.get('https://web.whatsapp.com/')
Run Code Online (Sandbox Code Playgroud)

第一次尝试时,我必须手动扫描 QR 码,而在以后的尝试中,它不会要求提供 QR 码。

但是,如果我在添加此行 chrome_options.add_argument("--headless") 后尝试执行相同的操作,则会出现将 DevTools 活动端口写入文件时出错。我尝试了至少十几种不同的谷歌搜索解决方案,但没有一个有效。对此的任何帮助将不胜感激!谢谢。

到目前为止,尝试了不同组合中的一堆不同参数,但没有任何效果:

options = Options() #decomment for local debugging
options.add_argument('--no-sandbox')
options.add_argument('--headless')
options.add_experimental_option('useAutomationExtension', False)
options.add_argument('--disable-setuid-sandbox')
options.add_argument('--remote-debugging-port=9222')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--disable-gpu')  # Last I checked this was necessary.
options.add_argument('start-maximized')
options.add_argument('disable-infobars')
options.add_argument('--user-data-dir=./User_Data')
driver = webdriver.Chrome('chromedriver.exe', options=options)

driver.get('https://web.whatsapp.com/')
Run Code Online (Sandbox Code Playgroud)

python selenium headless headless-browser whatsapp

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

Puppeteer 在 .newPage() 处被阻止

我想使用 Puppeteer 生成 PDF。

\n

我的环境开发

\n
    \n
  • WSL2 Debian 破坏者
  • \n
  • 节点 v12.18.1
  • \n
  • npm 7.5.4
  • \n
  • 傀儡师8.0.0
  • \n
\n

我在网上尝试了很多教程来做到这一点。\n但是代码被阻止browser.newPage()

\n
const browser = await puppeteer.launch();\nconsole.log(await browser.version()); //HeadlessChrome/90.0.4427.0 \nconst page = await browser.newPage(); //after it does nothing\n
Run Code Online (Sandbox Code Playgroud)\n

这里是调试(最后六行):

\n
  puppeteer:protocol:RECV \xe2\x97\x80 {"id":4,"result":{"sessionId":"B3D2567E07203D4A096A495710466966"}} +0ms\n  puppeteer:protocol:SEND \xe2\x96\xba {"sessionId":"B3D2567E07203D4A096A495710466966","method":"Page.enable","params":{},"id":5} +1ms\n  puppeteer:protocol:SEND \xe2\x96\xba {"sessionId":"B3D2567E07203D4A096A495710466966","method":"Page.getFrameTree","params":{},"id":6} +1ms\n  puppeteer:protocol:SEND \xe2\x96\xba {"sessionId":"B3D2567E07203D4A096A495710466966","method":"Target.setAutoAttach","params":{"autoAttach":true,"waitForDebuggerOnStart":false,"flatten":true},"id\n":7} +0ms\n  puppeteer:protocol:SEND \xe2\x96\xba {"sessionId":"B3D2567E07203D4A096A495710466966","method":"Performance.enable","params":{},"id":8} +0ms\n  puppeteer:protocol:SEND \xe2\x96\xba {"sessionId":"B3D2567E07203D4A096A495710466966","method":"Log.enable","params":{},"id":9} +0ms\n\n
Run Code Online (Sandbox Code Playgroud)\n

谢谢,

\n

headless node.js puppeteer

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

无头浏览器在自动化方面的差异

主要区别在于,在GUI基和非GUI基(Headless)上执行。

我正在寻找所有无头浏览器之间的差异,但是很遗憾,我没有找到任何差异。我一个接一个地讲,这使我更加困惑。如果有人可以分享具有差异的简短信息,那就太好了,这很清楚。

selenium headless headless-browser selenium-webdriver htmlunit-driver

0
推荐指数
1
解决办法
1318
查看次数

UnhandledPromiseRejectionWarning:ReferenceError:浏览器未定义用于使用 puppeteer 进行 azure 登录

我正在尝试使用 puppeteer 自动化在 azure 门户上运行的应用程序。输入密码后我收到以下错误,它没有单击提交按钮。

node:55768) UnhandledPromiseRejectionWarning: ReferenceError: browser is not defined
Run Code Online (Sandbox Code Playgroud)

这是我的示例代码:

(async () => {
  
  try {
    const launchOptions = { headless: false, args: ['--start-maximized'] };
    const browser = await puppeteer.launch(launchOptions);
    const page = await browser.newPage();
    await page.emulate(iPhonex);
    await page.goto('https://apps.testpowerapps.com/play/72ff5b93-2327-404d-9423-92eedb44a287?tenantId=n082027');
     
      //Enter User Name
      const [userName] = await page.$x('//*[@id="i0116"]');
      await userName.type("jyoti.m@azure.com");
        const [loginButton] = await page.$x('//*[@id="idSIButton9"]');
        await loginButton.press('Enter');
   
       //Enter Password
      const [passWord] = await page.$x('//*[@id="i0118"]');
      await passWord.type("Pass123");
        
        const [submitButton] = await page.$x('//*[@id="idSIButton9"]');
        await submitButton.press('Enter');
        //await page.keyboard.press('Enter');

  }
  catch(error){
  console.error(error); …
Run Code Online (Sandbox Code Playgroud)

javascript headless puppeteer

0
推荐指数
1
解决办法
228
查看次数

如何在远程 Ubuntu/Debian Linux 服务器上运行无 libvirt 的 headless qemu?

我已经尝试过什么?

qemu-system-x86_64 -hda hdd.img -m 1G -net nic, macaddr=MACADDR -net bridge,br=BRIDGE -enable-kvm -nographic -daemonize

qemu-system-x86_64 -hda hdd.img -m 1G -net nic, macaddr=MACADDR -net bridge,br=BRIDGE -enable-kvm -display none -daemonize

qemu-system-x86_64 -hda hdd.img -m 1G -net nic, macaddr=MACADDR -net bridge,br=BRIDGE -enable-kvm -nographic -serial mon:stdio -append 'console=ttyS0'
Run Code Online (Sandbox Code Playgroud)

MACADDR 和 BRIDGE 在我的系统中定义。

我使用过-display none -daemonize,但失败并出现错误

qemu-system-x86_64: -nographic cannot be used with -daemonize

我也尝试过-nographic -serial mon:stdio -append 'console=ttyS0',但也失败并出现错误:

Failed to initialize module: /usr/lib/x86_64-linux-gnu/qemu/block-iscsi.so
Note: only modules from the same build can …
Run Code Online (Sandbox Code Playgroud)

ubuntu debian qemu headless debian-based

0
推荐指数
1
解决办法
2459
查看次数