问题标签 [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.
firefox - 如何以编程方式停止在Firefox中加载页面?
我正在使用 WebDriver 和 Firefox 运行几个测试。
我遇到了以下命令的问题:
WebDriver.get(www.google.com);
使用此命令,WebDriver 会阻塞,直到触发 onload 事件。虽然这通常需要几秒钟,但在永远不会完成加载的网站上可能需要几个小时。
我想做的是在某个超时后停止加载页面,以某种方式模拟 Firefox 的停止按钮。
每次尝试加载页面时,我首先尝试执行以下 JS 代码:
不幸的是,这不起作用,可能是因为:
由于加载脚本的顺序,stop() 方法无法阻止包含它的文档加载1
更新 1:我尝试使用 SquidProxy 来添加连接和请求超时,但问题仍然存在。
我今天发现的一件奇怪的事情是,一个网站在我的机器(FF3.6 - 4.0 和 Mac Os 10.6.7)上从未停止加载,但在其他浏览器和/或计算机上正常加载。
更新 2:这个问题显然可以通过告诉 Firefox 不要加载图像来解决。希望在那之后一切都会好起来……
我希望 WebDriver 有一个更好的 Chrome 驱动程序以便使用它。Firefox 每天都让我失望!
更新 3:Selenium 2.9 添加了一个新功能来处理驱动程序似乎挂起的情况。这可以使用FirefoxProfile
如下:
我会在我尝试后发布这是否有效。
更新 4:最后,上述方法均无效。我最终“杀死”了需要很长时间才能完成的线程。我打算尝试Ghostdriver,它是一个使用 PhantomJS 作为后端的远程 WebDriver。PhantomJS 是一个无头的 WebKit 脚本,所以我希望不会有真正的浏览器(如 firefox)的问题。对于没有义务使用 firefox(爬行目的)的人,我将更新结果
更新5:更新时间。使用 ghostdriver 1.1 代替 FirefoxDriver 5 个月,我可以说我对他的性能和稳定性感到非常满意。我遇到了一些情况,我们没有适当的行为,但看起来一般 ghostdriver 足够稳定。因此,如果您像我一样需要用于爬行/网络抓取的浏览器,我建议您使用 ghostdriver 而不是 firefox 和 xvfb,这会让您头疼...
java - 如何使用 Java 使用 Selenium 运行 ghostdriver
我想phantomJS
用于一些网络测试,我遇到过GhostDriver
(https://github.com/detro/ghostdriver)。我已经使用自述文件中的说明构建了它,并且可以在指定的端口上运行它,但是我不确定如何从我的 java 代码中访问 Web 驱动程序。为了澄清,我在 ruby 中看到了这个例子:
我只是不确定如何从 java 做同样的事情。
python - 如何在 python webdriver 中为 phantomjs/ghostdriver 设置代理?
我试图弄清楚如何通过 HTTP 代理路由我的请求。
我正在像这样初始化 webdriver:
我已经浏览了文档和源代码,似乎找不到通过 webdriver 使用带有 phantomjs 的代理服务器的方法。
有什么建议么?
selenium - 使用 Watir-Webdriver 和 phantomjs 的帧问题
我正在使用 Watir-Webdriver 和 phantomjs 编写测试,我遇到了 iframe 的问题。我正在尝试使用以下代码获取元素:
当我使用 phantomjs 时,它会引发错误:
但是当我使用 chrome 驱动程序时,上面的代码可以正常工作并返回“true”值。
有什么想法可以解决吗?或者也许还有其他方法可以使用 phantomjs 获取此元素?任何帮助将不胜感激。谢谢!
java - 在 selenium ghost 驱动程序中嵌入用于解析和单击网页的 javascript
我正在尝试使用 Ghost 驱动程序解析 Google 搜索结果页面,为此我需要解析第二个搜索结果页面。因此,使用 Java 脚本,我试图浏览搜索结果页面的源代码(html)并通过单击(使用 Ghost 驱动程序)下面的页码进行导航。然后它抛出以下异常。
phantomjs - 无法通过 Selenium Grid2 使用 RemoteWebDriver(Ghost,Phantom)
我今天尝试了 GhostDriver 和 Phantomjs。当我使用 GhostDriver 时,它运行良好。这样开始
phantomjs --webdriver=8910 然后
我的硒测试用例可以通过。
然后我尝试使用 Selenium2Grid,所以我启动 selenium 独立服务器作为集线器:
然后将 GhostDriver 注册到集线器
然后我通过 Grid 控制台检查了注册:http://localhost:4444/grid/console
发现 phantomjs 已经注册了。所以我修改了代码,客户端应该访问网格:
重新运行 selenium 测试用例,我认为它会运行良好,但抛出异常:
我调试了代码,发现在RemoteWebDriver.class中,响应是Selenium Grid Page(http://localhost:4444
)的源代码,应该是这样的MAP对象(下面是我直接使用GhostDriver时得到的):[platform=windows -7-32 位,acceptSslCerts=false,javascriptEnabled=true,browserName=phantomjs,rotatable=false,locationContextEnabled=false,版本=phantomjs-1.8.1+ghostdriver-1.0.2,databaseEnabled=false,cssSelectorsEnabled=true,handlesAlerts=false , browserConnectionEnabled=false, webStorageEnabled=false, proxy={proxyType=direct}, nativeEvents=true, applicationCacheEnabled=false, takeScreenshot=false]
有没有人遇到过这个问题?或者有什么建议?提前致谢。
javascript - 如何通过 Python 使用 GhostDriver 处理警报?
问题: GhostDriver API 还不支持警报处理。目前有一个可接受的解决方法,即将您自己的 javascript 注入将处理警报并为您存储其文本的页面。
我在通过 python webdriver 绑定使用此解决方法时遇到问题。这可能与我对javascript的新手级理解有关。
这是我尝试使用的解决方法的一个示例: https ://github.com/detro/ghostdriver/issues/20#issuecomment-15641983
我正在使用一个显示警报的公共网站,以使这更简单:http ://www.tizag.com/javascriptT/javascriptalert.php
这是我的代码:
例外是:
我是一个JS菜鸟。我希望有人能指出我正确的方向。
java - 如何减少使用 GhostDriver 和 PhantomJS 从 Web 获取 URL 页面的时间
我在 Maven 中做项目。我尝试从 URl 获取页面。到目前为止,我成功地从网络获取页面。但我有两个问题,
问题,
- 下面的代码需要大约 14 秒来获取任何两个 URL 页面,我怎样才能减少这个时间,帮助我优化这个。
- 完成执行后,它不会从代码中退出。为什么 ?我用 结束了代码
driver.close()
。那么,为什么,它没有成功退出。我在开始之前和完成过程之后添加了快照。请看这些。
帮助我解决我的问题。请。
我的代码:-
开始过程之前的快照,
完成该过程后的快照,当它无故等待时,
c# - 在 Selenium 测试运行后 GhostDriver 不会退出
在我使用 GhostDriver (PhantomJS) 对 Selenium 进行的第一个非常简单的测试中,测试通过了,但 PhantomJS.exe 没有退出。我在 Windows 7、PhantomJS 1.9.0、Selenium WebDriver API 2.32.1 和 NUnit 2.6.2.12296、.NET 3.5 上运行。
这是我的 C#/Nunit/WebDriver 代码:
以下是 PhantomJS 的所有内容:
但它永远不会关闭......有什么想法吗?
selenium - Selenium webdriver java - 使用phantomjs驱动上传文件
我正在使用 Phantomjs 驱动程序无头运行 selenium webdriver 脚本。我在上传文件时遇到问题,因为在普通浏览器(firefox 或 chrome)上它会弹出操作系统对话框,让我可以在我的机器中找到文件并上传它。如何使用 ghostDriver(Phantomjs 驱动程序)来做到这一点?谢谢