问题标签 [ghostdriver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
8635 浏览

selenium - 量角器(Selenium webdriver)VS ghostdriver(phantomjs webdriver)有什么区别?

我想澄清一下量角器 VS ghostdriver 之间的区别。

  1. 带量角器:

    • 启动 selenium web 服务器进行测试。
    • 多浏览器测试。
    • 每当它开始测试时,它都会打开浏览器。
  2. 使用幽灵驱动程序:

    • 启动 phantomjs 网络服务器。
    • 也可以配置多个浏览器。
    • 可以与 selenium 单独运行或与 selenium 集成。

我的问题是 PhantomJS webdriver 可以单独运行而无需 selenium webdriver、多个浏览器并且对 CI 有好处。为什么我们需要运行 selenium 并使用 ghostdriver 将 selenium 与 phantomjs 集成?

0 投票
1 回答
871 浏览

selenium-webdriver - 使用phantomjs的selenium webdriver(JS实现)不支持appcache吗?

我们正在使用 Selenium WebDriver 和 PhantomJS 对我们的单页应用程序运行黄瓜测试。我们最近实现了一个 appcache 清单,现在我们的 cukes 失败了。在我们的故障排除中,它似乎失败了,因为 phantomjs 不支持缓存清单。在查看 phantomjsdriver.log 时,我们发现协商的功能包含:

然后,我们尝试设置所需的功能以启用它:

日志文件中期望的与协商的功能表明它正在尝试设置但没有成功(并且我们的 cukes 仍然失败)。

有谁知道我们的方案是否不受支持,或者我们是否以错误的方式实施它?

0 投票
3 回答
11071 浏览

java - PhantomJS 和 Selenium Webdriver - 如何清除会话

我正在使用 Selenium Webdriver (Java) 和 PhantomJS 来测试一个复杂的 JS 驱动的网站。我的问题是,PhantomJS 浏览器会在两个测试之间保持会话,这会导致测试设置出错。

如果我使用 Firefox 运行测试,一切正常,因为 Firefox 对每个测试用例都使用干净的会话。

我第一次尝试解决这个问题是通过 JS 注入清除本地存储。cookie 被 Selenium 删除API driver.manage().deleteAllCookies();

但是不允许在不访问页面的情况下执行 JavaScript。所以在“about:blank”启动浏览器会导致错误。

那么,如何配置我的 phantomjs webdriver 以清除会话?

我正在使用 phantomjs 和 webdriver,因为 selenium-grid 服务不够稳定。所以我像这样启动我的 phantomjs 实例:

0 投票
2 回答
1667 浏览

selenium - 使用 WebdriverJS 时如何访问错误?

我们正在使用一流的WebdriverJS(带有 Selenium)对我们的 Web 应用程序执行验收测试。一切正常,当我们使用 Firefox 和 Safari 时,我们的测试成功执行。

但是,当我们使用 PhantomJS 时,我们的测试会因无用的错误而失败。就好像... Javascript 甚至没有在客户端页面中运行!如果 PhantomJS 的 javascript 环境出现错误,就会导致这种情况。不幸的是,在将 PhantomJS 与 WebdriverJS 一起使用时,我似乎找不到访问 Javascript 错误的方法。

如果我们直接使用 PhantomJS,我们可以简单地(来自PhantomJS 站点):

page不幸的是,在 WebdriverJS 中使用 PhantomJS 时,我不知道如何访问这个神秘的对象。有什么想法吗?

0 投票
1 回答
6061 浏览

python - 如何通过 GhostDriver (selenium) 使用 PhantomJS 运行网页代码

我正在寻找PhantomJS通过 via渲染 pdf 的能力GhostDriver,而不仅仅是渲染 pdf。当我使用下一个代码时,页面正常加载:

当我通过命令行https://github.com/ariya/phantomjs/blob/master/examples/rasterize.js使用下一个脚本时, pdf 生成完美。

现在我想执行类似rasterize.js( page.render('file.pdf')) 的脚本,但要通过webdriver. webdriverexecute_script方法,但它看起来像PhantomJS代码评估并且无权访问webpage实例上下文。也webdriverget_screenshot_as_base64方法,但它只返回 png。

我使用最新版本的selenium, phantomjs, nodejs.

所以我的问题是如何通过和评估方法访问PhantomJS网页实例?GhostDriverrender

0 投票
1 回答
736 浏览

angularjs - 解决量角器中的 phantomjs 崩溃问题

有没有办法解决 phantomjs 和量角器不能很好地协同工作的事实?(基本上这个问题在这里:https ://github.com/detro/ghostdriver/issues/328 )

我想要做的是在测试之前检查 phantomjs 浏览器是否崩溃(即浏览器未打开。)如果有,我想启动一个新的 phantomjs 实例并继续我的其余测试(如果我能重新运行因崩溃而失败的测试)。

我没有成功的一种方法如下所示:

请注意,我需要打开一个非角度页面才能启动,因此是 driver.get。在这种情况下,我可以打开另一个浏览器,但量角器并没有像我想要的那样挂上它。

0 投票
2 回答
7360 浏览

selenium - 具有许多 phantomjs 并发实例的 Selenium 网格节点

我正在努力添加一个具有许多并发 PhantomJS 实例的节点。在 GhostDriver github 页面上,您可以找到将仅使用一个 PhantomJS 实例注册一个节点的说明:

我不允许发布图像,所以这是使用以下方法添加节点后的网格视图: 在此处输入图像描述

这是配置选项卡内容:

由于 selenium 网格允许从命令行定义节点浏览器,因此我尝试使用 phantomjs 来执行此操作,但正如您在此处看到的那样,它不受支持。

-browser 允许的参数: browserName={android, chrome, firefox, htmlunit, internet explorer, iphone, opera} version={browser version} firefox_binary={path to executable binary} chrome_binary={path to executable binary} maxInstances={maximum这种类型的浏览器数量} platform={WINDOWS, LINUX, MAC}

0 投票
0 回答
3722 浏览

c# - How to setup PhantomJS in C# program?

I've been looking around and nothing explains it well. It mentions Ghost driver and PhantomJS uses Java, but also mentions C#. I tried using PhantomJS but says a assembly is missing or not found. Do i need to reference Ghost driver assembly? But isn't in jar files and java? I don't get it. I am simply trying to get a headless browser for a C# program. Im currently using Chrome webdriver.

0 投票
1 回答
1098 浏览

javascript - 通过 WebDriver/GhostDriver 向 PhantomJS 传递参数

很长一段时间以来,我一直试图让 PhantomJS ( 1.9.7 )/GhostDriver 使用一些自定义设置进行初始化,但完全没有成功。我使用 wd.js 作为我的 WebDriver 库,并且我尝试了几乎所有我能想到的属性组合,但是没有任何效果,而且我找不到任何文档。

这是我尝试传递的内容(为了理智而缩短了 userAgent,它在我的实际测试用例中是真实的):

{ browserName: "phantomjs", "userAgent": "foo" }

{ browserName: "phantomjs", "settings": { "userAgent": "foo" } }

{ browserName: "phantomjs", "page": { "userAgent": "foo" } }

{ browserName: "phantomjs", "page": { "settings": { "userAgent": "foo" } } }

{ browserName: "phantomjs", "phantomjs": { "page": { "userAgent": "foo" } } }

{ browserName: "phantomjs", "phantomjs": { page": { "settings": { "userAgent": "foo" } } } }

实际上,使用我能从https://github.com/detro/ghostdriver#what-extra-webdriver-capabilities-ghostdriver-offers中想到的几乎所有键组合实际上更多。

有没有人知道在使用 Webdriver/Ghostdriver 时需要传递什么来自定义 PhantomJS 中的设置?

0 投票
0 回答
608 浏览

java - 使用 Selenium 和 HtmlUnitDriver 或 PhantomJsDriver 识别警报


我将Selenium 2.42.0Java(在 Eclipse 中)一起使用,并且我需要将无头浏览器用作WebDriver ,例如HtmlUnit-driver (2.42.2)PhantomJS (Ghostdriver)。重要的是我可以在 Java (Eclipse) 中处理警报,我故意触发这些警报以在测试站点上进行测试。
我可能会关闭警报,但我需要在 Eclipse 中以某种方式识别它已经存在警报,例如获取警报的文本,甚至是存在警报的异常或类似:

使用FireFoxdriver很容易,但 Selenium 在 HtmlUnitDriver 和 PhantomJsdriver 中尚未实现警报:

请帮我。谢谢!