标签: chromeless

跨多个显示器的Windows/Chrome/ATI /浏览器全屏

我使用以下测试设置(最新含义截至2012年7月14日):

  • Core i7配备ATI FirePro V9800(Eyefinity)

  • Windows 7 Pro 64位(最新更新/补丁)

  • 最新的Catalyst驱动程序

  • 最新的谷歌Chrome稳定版/金丝雀版.

  • 6 x 1080p显示器(连续)显示11520px×1080px桌面.

我尝试了以下方法来获取跨显示的全屏Web视图:

  • 在Catalyst控制面板中将最大化设置为整个桌面设置.这适用于最大化普通窗口(Chrome除外),但不适用于任何全屏幕.

  • 尝试Chrome Kiosk模式(这将是理想的),同样的问题,只填充主显示器.

  • 使用Chrome全屏或HTML5全屏API会产生相同的结果:全屏显示6台显示器中的一台.

  • IE9似乎对webview有约10000px的限制,因此我甚至无法在整个桌面上手动拉伸它(适用于Chrome).

  • 试过UltraMon.

  • 尝试了一些Chrome命令行开关(http://peter.sh/experiments/chromium-command-line-switches/)用于自助服务终端模式,从全屏等开始,所以现在使用--app ="http: //127.0.0.1/index.html"切换到至少摆脱Chrome的大部分UI元素.

  • 试图找到Chrome的扩展程序,但没有成功.

  • 在IE9中尝试使用Chrome Frame,也只使用一个显示器.

据我所知,这很可能是一个向Chrome报告错误桌面大小的驱动程序问题(我认为这是Catalyst Maximize到完整桌面大小功能的重点).Chrome似乎没有像其他"正常"窗口那样从同一个地方获得桌面大小(显然不太熟悉Windows窗口).

我想在多个显示器上工作全屏Chrome浏览器webview,或者我可以手动最大化的完全无铬窗口.我的浏览器配置很灵活,即使操作系统也有些灵活.

我想知道:

  • 有没有人在超过1台显示器上获得全屏浏览器视图才能使用Chrome(或任何浏览器)?

  • 是否有任何工具可以伪造Chrome的正确(完整)显示尺寸?

  • 这可以在Windows 8中使用吗?

  • 是否只显示运行最新Chrome的Chromeless Chrome浏览器?(我见过awesomium,但发现它的价格对我想要的东西来说太高了).此外,我希望能够理想地使用最新的Chrome版本.

任何评论都欢迎并且对于冗长的细节感到抱歉.

谢谢阅读!-Tobi

multiple-monitors google-chrome kiosk fullscreen chromeless

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

如何操作由Chromeless中的ul和li元素组成的下拉菜单

我正面对一个由ul和li元素组成的下拉菜单:

<ul class="o_dropdown_theme_values">
    <li class="" tabindex="-1">
        <label class="myclass" tabindex="0">Category 1</label>
    </li>
    <li class="" tabindex="-1">
        <label class="myclass" tabindex="0">Category 2</label>
    </li>
    ...
</ul>
Run Code Online (Sandbox Code Playgroud)

我知道使用Chromeless修改下拉菜单的两种方法:

.evaluate((dropDownValue) => {
    select = document.querySelector('select#category1')
    select.value = dropDownValue
}, dropDownValue)
Run Code Online (Sandbox Code Playgroud)

.click('#id') 
.type("first letters of option", '#id') 
.click('#id option[value="'+dropDownValue+'"]') 
Run Code Online (Sandbox Code Playgroud)

但由于ul和li菜单的结构,我无法使用这些.

我还尝试单击菜单,然后根据需要多次按Tab键选择正确的选项,就像我用键盘导航菜单一样.但是我发送的Tab键不会被考虑在内.我能够向菜单发送一个(并且只有一个)DOWN键(而不是TAB),但仅此而已.

我怎么能操纵这种菜单?任何基于JavaScript的解决方法将不胜感激.

javascript chromeless

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

AS3 YouTube无边框播放器广告会影响父应用程序比例属性

摘要

我的Flex/AS3应用程序中有一个Youtube API无边框播放器.一切正常,直到上个月我们开始在页面重新加载时遇到放大问题.

问题描述

以下是播放YouTube视频的应用程序的正常状态示例:

应用程序内的YouTube无边框播放器:正常状态

重新加载网页后: 应用程序内的YouTube无边框播放器:有问题的状态

问题的前提条件

这仅在某些广告上发生,一旦发生,它将很容易反复出现,直到此广告被其他内容更改为止.我不确定广告导致问题的原因并不是100%确定它是导致问题的广告,但几乎99%就是它.

有人经历过同样的问题吗?或者,如何在不收到沙盒违规例外的情况下强制执行Google广告不会影响主应用程序?

PS

不幸的是,提供应用程序的源代码非常复杂,但是YoutTube播放器的实现完全根据谷歌的例子,并且已经在生产很长时间了.

apache-flex youtube flash actionscript-3 chromeless

7
推荐指数
0
解决办法
399
查看次数

YouTube API无边框播放器令牌到期

摘要

我的Flex/AS3应用程序中有一个Youtube API无边框播放器.有时我需要播放器连续播放Youtube的电影(不间断).

问题

  • 在播放12小时或更长时间之后,由第一个播放器初始化请求生成的API令牌将过期.

     http://www.youtube.com/apiplayer?version=3&modestbranding=1&autoplay=0
    
    Run Code Online (Sandbox Code Playgroud)

    这里的问题是,在令牌过期后再次调用的API调用loadVideoById无法开始播放视频,因为令牌没有自动续订.

  • 在播放我们的播放列表(每个项目通过调用loadVideoById播放)播放 4-5小时或更长时间后,视频有时会开始播放并突然卡住.虽然没有调度错误事件.

已知的解决方案

  • 因此,对于第一个问题,解决方案是通过卸载播放器并使用API​​调用再次加载它来每12小时更新一次令牌:

     http://www.youtube.com/apiplayer?version=3&modestbranding=1&autoplay=0 
    
    Run Code Online (Sandbox Code Playgroud)
  • 对于第二个问题,没有任何想法.需要你的帮助.

相关的源代码

private function CreateYoutubePlayerSWF():void {
    ...
    theYoutubeLoader.contentLoaderInfo.addEventListener(Event.INIT, onLoaderInit);
    theYoutubeLoader.load(new URLRequest("http://www.youtube.com/apiplayer?version=3&modestbranding=1&autoplay=0"));
    ...
}

private function PlayPendingVideo():void {
    ...         
    theYoutubePlayer.loadVideoById(videoWaitingToPlayInfo.videoWaitingToPlay);
    ...
}
Run Code Online (Sandbox Code Playgroud)

请求和回复

当玩家停止玩时,这就是我在小提琴手中得到的:

"request": {
      "method": "GET",
      "url": "http://www.youtube.com/get_video?cpn=Lj5HaLu7MzS5kG-T&fmt=35&splay=1&t=vjVQa1PpcFNwMVrYUDFOTTG-7co1uJFo3oyrB-qoP_k=&video_id=j-vJJSqw5Q4&eurl=http%3A%2F%2Fwatchitoo.com%2Fiframe.php%3Fid%3Dwwa-154%26scale%3Dfalse%26layout%3D14&asv=3&el=embedded&ps=chromeless&ptk=youtube_none&noflv=1",
      ...
      "queryString": [
        {
          "name": "cpn",
          "value": "Lj5HaLu7MzS5kG-T"
        },
        {
          "name": "fmt",
          "value": "35"
        },
        {
          "name": "splay",
          "value": "1"
        },
        {
          "name": "t",
          "value": "vjVQa1PpcFNwMVrYUDFOTTG-7co1uJFo3oyrB-qoP_k"
        },
        {
          "name": "video_id",
          "value": "j-vJJSqw5Q4"
        },
        { …
Run Code Online (Sandbox Code Playgroud)

youtube token youtube-api chromeless

6
推荐指数
0
解决办法
938
查看次数

Chromeless - 在执行指令之前等待

我使用Chromeless检索网站上的一条信息并加载相应的文件:

async function run() {
  const chromeless = new Chromeless()

      const screenshot = await chromeless
        .goto('http://www.website.com')
         title = await chromeless.inputValue('input[name="title"]')

         var fs = require('fs');
         var data = fs.readFileSync(title,"utf8");
         ...
    await chromeless.end()
}
Run Code Online (Sandbox Code Playgroud)

但是当我启动脚本时,文件读取指令会立即执行,而不是等待Web爬行完成.

在javascript中,我认为我需要使用回调函数来防止这种情况,但有没有更好的方法来使用Chromeless?

javascript automation callback chromeless

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

SyntaxError:在Centos上安装chromeless nodejs时出现意外的标识符

我正在尝试使用CentOS 6在我的服务器上安装节点js包:

npm install chromeless
Run Code Online (Sandbox Code Playgroud)

但安装失败并显示以下消息:

/usr/lib/node_modules/npm/bin/npm-cli.js:79
let notifier = require('update-notifier')({pkg})
    ^^^^^^^^
SyntaxError: Unexpected identifier
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:945:3
Run Code Online (Sandbox Code Playgroud)

知道发生了什么事吗?

centos npm chromeless

6
推荐指数
0
解决办法
978
查看次数

如何在 Docker 中安装字体?

如何安装所有语言的字体?这就是我所做的,但 Chrome 中没有日文字体。

来自这张图片:https : //github.com/Zenika/alpine-chrome/blob/master/Dockerfile

FROM zenika/alpine-chrome

USER root

RUN apk add --no-cache msttcorefonts-installer fontconfig
RUN update-ms-fonts

# Installs latest Chromium package.
RUN apk add --no-cache \
    msttcorefonts-installer fontconfig \
    font-noto \
    font-noto-adlam \
    font-noto-adlamunjoined \
    font-noto-arabic \
    font-noto-armenian \
    font-noto-avestan \
    font-noto-bamum \
    font-noto-bengali \
    font-noto-buhid \
    font-noto-carian \
    font-noto-chakma \
    font-noto-cherokee \
    font-noto-cypriot \
    font-noto-deseret \
    font-noto-devanagari \
    font-noto-ethiopic \
    font-noto-extra \
    font-noto-georgian \
    font-noto-glagolitic \
    font-noto-gothic \
    font-noto-gujarati \
    font-noto-gurmukhi \
    font-noto-hebrew \
    font-noto-kannada \ …
Run Code Online (Sandbox Code Playgroud)

google-chrome chromeless docker alpine-linux

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

使用Chromeless和Puppeter优于Selenium有什么好处?

我们正在寻求将Selenium方法替代为自动Web数据收集方法,因此建议使用Puppeteer或Chromeless。

我喜欢的一件事是能够在AWS lambda上运行的chrome变得毫无头绪。该原因被认为是与Chromeless或Puppeteer一起使用的主要原因。但是,我在网上看到一些帖子,表明使用Selenium可以完成相同的操作。如果是这样,那么与Selenium相比,Chromeless和Puppeteer具有什么优势?

我们将使用NodeJS

selenium automated-tests node.js chromeless puppeteer

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

querySelectorAll 请求时出现“对象引用链太长”错误

我想使用特定的 css 路径获取 DOM 中的所有元素:

var elements = await chromeless.evaluate(() => document.querySelectorAll('div a'))
console.log(elements[0].innerHTML)
console.log(elements[1].innerHTML)
Run Code Online (Sandbox Code Playgroud)

但这段代码在第一行给了我错误“对象引用链太长”

这段代码可以工作:

var element = await chromeless.evaluate(() => document.querySelectorAll('div a')[0].innerHTML)
console.log(element)
Run Code Online (Sandbox Code Playgroud)

我可能会使用一个循环来检索它们,但我不知道我的 DOM 中有多少元素有这个 css,所以我不知道要循环多少次。

获取所有所需元素的正确语法是什么?

javascript chromeless

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

通过jQuery转换时间

从YouTube播放器http://code.google.com/apis/ajax/playground/?exp=youtube#chromeless_player我得到一个时间值,以秒为单位,如'243.577'.让它成为一个简单的字符串.

如何将其转换为如下值:'04:35'?对于这个例子,像4分35秒(希望我做出正确的计算).

如果该值仅为5秒,那么它应该给出类似'00:05'的值.如果是负数,那么'00:00'.

html css youtube jquery chromeless

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

如何使用 C 程序获取机器的 MAC 地址?

这个问题与这个问题完全相同:How to get MAC address of your machine using a C program?

“我正在 Ubuntu 上工作。我如何使用 C 程序获取我的机器的 MAC 地址或接口(如 eth0)。”


现在,我通常不接触 C...但在这种情况下我必须这样做。由于我真的不知道以下代码(取自上面链接的答案)中发生了什么,因此我需要一些帮助。

#include <sys/socket.h>
#include <sys/ioctl.h>
#include <linux/if.h>
#include <netdb.h>
#include <stdio.h>

int main()
{
  struct ifreq s;
  int fd = socket(PF_INET, SOCK_DGRAM, IPPROTO_IP);

  strcpy(s.ifr_name, "eth0");
  if (0 == ioctl(fd, SIOCGIFHWADDR, &s)) {
    int i;
    for (i = 0; i < 6; ++i)
      printf(" %02x", (unsigned char) s.ifr_addr.sa_data[i]);
    puts("\n");
    return 0;
  }
  return 1;
}
Run Code Online (Sandbox Code Playgroud)

我需要一个将 MAC 地址作为字符串返回的函数,而不是打印 MAC …

c linux chromeless jsctypes

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