问题标签 [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.
selenium - 这个测试设置是否正确/可能的 selenium IDE、ghostdriver、phantom.js、grid 和 php-webdriver 是否正确?
我想一次运行多个 phantomjs 实例。我想在 firefox/chrome/ie 中使用 phantomjs 而不是 selenium 的原因是 cookie 分离和在需要时易于使用代理(我们的一些系统需要从不同的 IP 访问)。加上 phantomjs 似乎比带有“头”的浏览器更苗条/更快。
我还想使用 selenium IDE 生成测试脚本(我已经尝试过 Resurrectio+casperjs,它很好,但 selenium 似乎更好)然后使用 php-webdriver 将它们作为 PHP 运行。
我一直在试图了解所有这些部分是如何组合在一起的,所以这个过程是否有效......
使用 firefox 在 selenium IDE 中生成测试脚本,然后将它们导出到 python 将此 Python 脚本转换为 facebooks php-webdriver 版本。看起来我必须手动执行此操作?使用此 php 脚本运行 Phantom.js 并将其指向 selenium java 服务器以执行脚本。
这一切都正确吗?我可以在一台机器上同时运行多个实例吗?我需要网格吗?鬼司机在哪里适合这一切!?
php - 是否可以使用 php-webdriver / ghostdriver / PhantomJS 1.9 实现会话隔离?
我正在尝试通过 facebooks php webdriver / ghost driver 和 phantomjs 实现会话隔离。我想在没有会话/测试相互干扰的情况下运行并发测试。
我已经尽可能多地研究了这个,但我对 phantomjs 很陌生,所以它让我很困惑。我可以在这里看到它包含在 ghostdriver 1.1.1 中,但这不在 phamtomjs 1.9 中,它在 2 中,我不相信它与 facebooks php webdriver 一起使用?
我是否认为这只能在 phantomjs 2 中完成?如果有可能在带有 ghostdriver 和 php-webdriver 的 phantomjs 1.9 中有人可以告诉我究竟是怎么做的吗?
.net - PhantomJSDriver 无法选择 jQuery ui 选项卡
我看到一个奇怪的失败,无法选择一对 jQuery ui 选项卡的第二个选项卡。这对 ChromeDriver 非常有效,但对 PhantomJSDriver 失败。
我的 PhantomJS 版本:1.9.8
jQuery 版本:1.10.2
jQuery 用户界面版本:1.10.3
开发环境:VS2012
你可以在这里找到我的页面的副本:http: //jsfiddle.net/anjw2gnr/1/
这是页面的相关部分:
这是我的单元测试的样子:
使用 ChromeDriver 运行,一切都会过去。但是,当我使用 PhantomJSDriver 运行时,它在以下行中失败:
结果消息:
测试方法 MyProject.WebDriverDemo.SampleJQueryTabsTest 抛出异常:OpenQA.Selenium.ElementNotVisibleException: {"errorMessage":"元素当前不可见,可能无法操作","request":{"headers":{"Accept":"application /json, image/png","Connection":"关闭","Content-Length":"0","Content-Type":"application/json;charset=utf-8","Host":"localhost :49593"},"httpVersion":"1.1","method":"POST","post":"","url":"/click","urlParsed":{"anchor":"","查询“:”“文件”:“点击”,“目录”:“/”,“路径”:“/点击”,relative":"/click","port":"","host":"","password":"","user":"","userInfo":"","authority":"", "protocol":"","source":"/click","queryKey":{},"chunks":["click"]},"urlOriginal":"/session/e22c43f0-7c05-11e4-9c9e- 6191347cc85b/element/%3Awdc%3A1417732544176/点击"}}urlOriginal":"/session/e22c43f0-7c05-11e4-9c9e-6191347cc85b/element/%3Awdc%3A1417732544176/click"}}urlOriginal":"/session/e22c43f0-7c05-11e4-9c9e-6191347cc85b/element/%3Awdc%3A1417732544176/click"}}
不可见的元素是选项卡 2 下的按钮,但是按钮不可见的唯一原因是选项卡 2 从未被单击。这意味着以下行失败,但仅使用 PhantomJSDriver:
关于为什么这只会对 PhantomJSDriver 而不是 ChromeDriver 失败的任何想法?这是 PhantomJS 中可能存在的错误吗?
补充笔记:
当我在 VS2012 中将以下行放入 Quick Watch 时:
对于 Selected 属性,我看到以下内容:
driver.FindElement(By.XPath("//div[@id='tabs']/ul/li[2]")).Selected' 抛出类型为 'OpenQA.Selenium.InvalidElementStateException' 的异常 bool {OpenQA.Selenium .InvalidElementStateException}
但是,当使用 ChromeDriver 运行时,Selected 属性仅显示 false 值而不是 InvalidElementStateException。
selenium - 将 PhantomJS 用于 Selenium 的 htmlsuite
尝试将 selenese 命令从 Selenium IDE 移植到可用于 cron 的任务,并且已经使用本地安装的 Firefox 使用 Webdriver 的 HTMLSuite 命令运行这些命令。但是,我们需要在不打开可视浏览器的情况下运行它们——因为我们已经在应用程序的其他地方使用了 PhantomJS,这似乎是合乎逻辑的选择,而不是走 XVFB 路线。
这可能吗?我尝试了各种命令,但不断收到 phantomjs 不是被接受的浏览器的错误。
node.js - 无法将 Selenium + PhantomJS/GhostDriver 作为子进程启动
我有一个 Node 脚本,我想使用该child_process
模块来让Selenium服务器与 PhantomJS 的GhostDriver 一起运行。
我需要模块:
Child = require "child_process"
这就是我尝试启动服务器并将GD附加到它的方式(在Coffeescript中):
对于stdout
是@PhantomJS
这样的:
此外,我从该命令中收到此错误:{"killed": false, "code": 1, "signal": null}
一些注意事项:
- Selenium jar 文件实际上位于 selenium/selenium-server-standalone-2.44.0.jar
- 我试过
npm update
ing 只是想看看这是否会有所作为 - 我突然想到 4444 端口上可能正在运行其他东西,所以我继续运行
"PORT_NUMBER=4444 | lsof -i tcp:${PORT_NUMBER} | awk 'NR!=1 {print $2}' | xargs kill"
,但无济于事 - 我已经尝试按照这个建议从源代码安装 PhantomJS到同样的错误
- 如果我在脚本之外单独运行这些命令,一切正常
scala - Selenium/PhantomJS 不适用于 http://webscraper.io/test-sites/e-commerce/more
我定义了一个 WebDriver,进入一个示例页面:http : //webscraper.io/test-sites/e-commerce/more/computers/tablets,然后多次单击“LoadMore”按钮。它们都不起作用。
这就是我使用它的方式(在 scala 中,如果你愿意,我可以用 Java 翻译和测试):
PageSource 显示还是点击之前的页面
selenium-webdriver - 带有 PhantomJSDriver 1.1.0 的 Selenium Webdriver 2.42.2 中的 UnreachableBrowserException
Selenium Web Driver 2.42.2
我正在使用and并行执行测试用例Ghost Driver 1.1.0
。添加更多测试时会发生以下异常。最初,由于测试次数较少,我没有看到这个异常。
堆栈跟踪:
javascript - 为什么无法在 GhostDriver / PhantomJSDriver 中禁用 JavaScript?
我想在PhantomJSDriver
特定页面上禁用 JavaScript,但是这里的这个链接说这是不可能的,因为“整个 GhostDriver 将变得不可用”。
有人可以解释一下,好像我已经 5 岁了,为什么会这样?
我是否有任何选项可以阻止 PhantomJSDriver 在页面上执行 JavaScript?
selenium-webdriver - HtmlUnitDriver (HtmlUnit) vs GhostDriver (PhantomJS)?
我们正在选择我们的无头浏览器驱动程序解决方案,该解决方案将是 Selenium WebDriver 的一些实现。一方面是GhostDriver,它利用后端中的PhantomJS ,另一方面是基于HtmlUnit的HtmlUnitDriver。
PhantomJS 使用 Safari 的渲染引擎 WebKit 来渲染页面,而 HtmlUnitDriver 使用其他浏览器不使用的 Rhino 引擎(它只是“模拟”浏览器行为。最后一个事实被认为是一个骗局,因为渲染行为可能与流行的浏览器。
在我们看来,PhantomJS 是一个更强大的候选者。但是,我们并不是一无所知 :) 我们在做出决定时还应该考虑其他因素和权衡吗?HtmlUnitDriver 可以成为更好解决方案的其他场景?
java - Java - PhantomJS 和 Selenium - 忽略 SSL 错误
我在使用 SSL 的页面时遇到问题。我很确定这是问题所在,因为我可以访问 http 页面并获取完整的页面源,但是当我访问 https 地址时,会得到以下信息:
我在用:
- PhantomJS v. 1.9.1
- GhostDriver v. 1.0.3
- Java 1.7
我尝试在所需功能上设置 --ignore-ssl-errors=true ,但它似乎不起作用。
我也尝试过使用“PhantomJSDriverService.PHANTOMJS_CLI_ARGS”并添加了 cli 参数“--web-security=false”。在所有情况下,我都可以在控制台中看到类似以下内容,但似乎没有一个真正起作用。
任何想法将不胜感激。