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
我有一个情况,我们用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,但不要依赖平台细节.
我该怎么做才能正确?
我正试图让黄瓜测试在无头的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) 我正在寻找一种方法来拥有一个C#类,主要是在没有任何GUI的情况下运行,作为Windows服务的一部分,可选地显示在WPF Canvas控件上.
我最初的想法是让对象扩展一个WPF控件,但这需要服务器端(Windows服务)引用这些库,这是不理想的.我的第二个想法是实现Factory模式,其中包装器将为对象生成GUI,但是如果需要,我希望对象能够定义它自己的设计(理想情况下具有代码隐藏的XAML).
这些类通过MEF从插件目录加载,并基于基于XML的设置文件进行实例化.
我想到了只有两个单独的类的可能性,但这似乎增加了插件制作过程的复杂性和冗余(可能会有几个这样).
思考?
编辑:这些类可以被认为是Windows Workflow Foundation Activities.它们通过GUI配置并在服务器上运行.
我们只是在不使用无头浏览器的情况下实现了CI,而是实际的浏览器.因此,一旦开发团队检查了新代码.我们的烟雾自动化代码在自动机器上作为后台进程运行并发送结果.如果有任何失败,它会发送截图.我们没有得到的是,使用无头浏览器进行上述处理的优势是什么.我们需要我们的烟雾脚本来获得这种覆盖.比如使用Select,Calendar,Uploaded等控件提交一个可以在5分钟内运行的大型表单,而不是简单的网页加载.
实际上我想在不想打开任何浏览器的服务器上运行我的selenium代码.但我很困惑哪个webdriver用于执行所有任务的服务器(我从某个站点下载一些文件并存储在我的服务器中).
selenium webdriver headless headless-browser selenium-webdriver
我正在尝试绕过 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) 我想使用 Puppeteer 生成 PDF。
\n我的环境开发
\n我在网上尝试了很多教程来做到这一点。\n但是代码被阻止browser.newPage()
const browser = await puppeteer.launch();\nconsole.log(await browser.version()); //HeadlessChrome/90.0.4427.0 \nconst page = await browser.newPage(); //after it does nothing\nRun 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\nRun Code Online (Sandbox Code Playgroud)\n谢谢,
\n主要区别在于,在GUI基和非GUI基(Headless)上执行。
我正在寻找所有无头浏览器之间的差异,但是很遗憾,我没有找到任何差异。我一个接一个地讲,这使我更加困惑。如果有人可以分享具有差异的简短信息,那就太好了,这很清楚。
selenium headless headless-browser selenium-webdriver htmlunit-driver
我正在尝试使用 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) 我已经尝试过什么?
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)