标签: headless-browser

运行无头JsTestDriver?

有没有办法在无头状态下使用jsTestDriver加载浏览器但是无头(你看不到浏览器)或者加载最小化?

javascript unit-testing js-test-driver headless-browser

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

从脚本/命令行执行浏览器页面/javascript

希望这不是一个愚蠢的问题。
我最近对一些我很好奇的事情有了一个想法。
我是 Node.js(我认为与此无关)和 V8 引擎的粉丝,但我想知道是否可以在内部运行浏览器(让它执行 JS)。

我的意思是创建一个程序(可能使用 V8 引擎),它可以打开一个页面(就像在浏览器中一样)并执行其 javascript。

例如,假设我在 www.mysite.co.uk/home.php 上托管了以下文件

<!DOCTYPE html>
<html>
<head>
<script>
function myFunction()
{
//javascript AJAX call to www.mysite.co.uk/ping.php
}
myFunction();
</script>
</head>

<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

ping.php 看起来像:

<?php
//connect mysql, database ping and table ping
//it is a single column table with integer value starting on 0
//increment by 1 and update the table
Run Code Online (Sandbox Code Playgroud)

假设我想通过在命令行/linux 盒子上使用某种脚本来执行 Javascript(基本上不使用浏览器)。

所以像这样:

./mybrowser http://www.mysite.co.uk/home.php
Run Code Online (Sandbox Code Playgroud)

甚至:

./mybrowser home.php
Run Code Online (Sandbox Code Playgroud)

我觉得这应该是可能的,因为 V8(或不同的 JS 引擎)在技术上应该能够执行 Javascript,但我不知道它如何在浏览器上下文中执行此操作(或者即使可能)。

有任何想法吗?

html javascript v8 headless-browser

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

在Mac上使用xvfb无头运行Safari浏览器

如何在OSX平台上的Safari浏览器上无头地运行我的jstestdriver测试用例?我可以使用xvfb-run命令在Linux上实现相同的功能.但是,OSX中没有这样的包装命令.我尝试执行以下2个命令,然后在safari中执行我的测试用例.

Xvfb :99 -ac &
export DISPLAY=:99
Run Code Online (Sandbox Code Playgroud)

但是,通过Safari浏览器显示而不是在xvfb环境中运行.好像Safari完全忽略了DISPLAY命令.有没有办法在OSX上无头地运行Safari?

safari macos js-test-driver headless-browser xvfb

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

任何无头浏览器的量角器?

我正在使用量角器,当我将chrome指定为browsertype时它可以工作.我正在寻找一个无头浏览器示例代码,我已经找了phantomJs但我无法运行其中任何一个.是否有另一个无头浏览器的工作样本?

headless-browser angularjs protractor

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

如何通过socks5代理让puppeteer工作?

我买了socsk5的代理服务器版本。在所有手册中相同的例子

const browser = await puppeteer.launch({
    headless: true,
    ignoreHTTPSErrors: true,
    defaultViewport: {...winSize},
    args: [
        '--proxy-server=socks5://proxyhost:8000',
        '--host-resolver-rules="MAP * ~NOTFOUND , EXCLUDE proxyhost"',
    ],
})
Run Code Online (Sandbox Code Playgroud)

它没有为此代理指定登录密码,显然不起作用

如果你指定这个

'--proxy-server=socks5://user:password@proxyhost:8000',
Run Code Online (Sandbox Code Playgroud)

它给出了一个错误

net::ERR_NO_SUPPORTED_PROXIES

我尝试使用https://github.com/sjitech/proxy-login-automator构建一座桥,但它也不起作用。

请提示

google-chrome headless headless-browser google-chrome-headless puppeteer

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

如何使用 Puppeteer 执行右键单击?

我正在尝试使用 Puppeteer 执行右键单击。

我试图添加选项:

await component.click({ button: "right" })
Run Code Online (Sandbox Code Playgroud)

但我得到的只是对组件的常规点击。我遵循了 Puppeteer 的API

我究竟做错了什么?

javascript node.js headless-browser google-chrome-devtools puppeteer

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

木偶:如何获取节点列表中每个元素的内容?

我正在尝试实现一些非常琐碎的事情:获取元素列表,然后innerText对每个元素的元素进行操作。

const tweets = await page.$$('.tweet');
Run Code Online (Sandbox Code Playgroud)

据我所知,这将返回一个节点列表,就像document.querySelectorAll()浏览器中的方法一样。

我如何遍历它并得到我所需要的?我尝试了各种东西,例如:

[...tweets].forEach(tweet => {
  console.log(tweet.innerText)
});
Run Code Online (Sandbox Code Playgroud)

javascript node.js headless-browser google-chrome-devtools puppeteer

4
推荐指数
2
解决办法
4731
查看次数

puppeteer 无头真实模式下找不到选择器节点

我的环境:

  • 傀儡师版本:1.20.0
  • 平台/操作系统版本:Ubuntu 18.04.3 LTS
  • Node.js 版本:8.10.0
  • 铬/78.0.3882.0

终端打印出这个错误内容:

(node:18157) UnhandledPromiseRejectionWarning: Error: No node found for selector: #identifierNext
    at assert (/home/hoangdd3/node_modules/puppeteer/lib/helper.js:279:11)
    at DOMWorld.click (/home/hoangdd3/node_modules/puppeteer/lib/DOMWorld.js:366:5)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
  -- ASYNC --
    at Frame.<anonymous> (/home/hoangdd3/node_modules/puppeteer/lib/helper.js:111:15)
    at Page.click (/home/hoangdd3/node_modules/puppeteer/lib/Page.js:1037:29)
    at puppeteer.launch.then (/home/hoangdd3/pupperteer/example.js:15:16)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
(node:18157) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) …
Run Code Online (Sandbox Code Playgroud)

javascript node.js headless-browser google-chrome-headless puppeteer

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

通过 Linux 以无头模式运行 Selenium 会导致错误

我在一个网站上运行了大量测试。当我在 Windows 上本地运行测试时,它们都 100% 通过。该测试是在 Google Chrome 上设计和运行的。

现在,我们开始通过 Jenkins 作业在无头模式下在 Linux 上运行测试。现在有些测试在 0% 的情况下失败,或者仅在 20% 甚至 10% 的情况下通过。在我的代码中,我通过 ID、xpath 或 css 查找元素,然后简单地单击它们。我使用 WebDriverWait 对象进行等待 - 既等待元素出现又可单击。

我的代码示例:

    WebDriverWait wait = new WebDriverWait(browser, secondsToWait);
    wait.until(ExpectedConditions.presenceOfElementLocated(By.id(elementID)));           
    lastFoundElement = wait.until(ExpectedConditions.elementToBeClickable(By.id(elementID)));
    clickLastFoundElement();
Run Code Online (Sandbox Code Playgroud)

在我的报告中,我主要看到未找到元素,并且我通过了等待对象中设置的超时。

如何让无头测试更加稳定?

为什么无头状态会造成如此多的问题?

java selenium headless-browser jenkins google-chrome-headless

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

使用带有Heroku Rails Unicorn堆栈的无头浏览器

我看过你可以在Heroku上更改构建的帖子,将PhantomJS与Cedar堆栈一起使用,但是可以在unicorn堆栈上运行无头浏览器吗?

heroku headless-browser phantomjs

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