Tag: phantomjs

如何运行PhantomJS作为服务器并远程调用它?

这可能是一个非常基本的问题。 我想运行一个无头浏览器PhantomJS作为服务器,但不作为命令行工具。 一旦运行,我想通过HTTP远程调用它。 我唯一需要的是发送一个URL并取回HTML输出。 我需要它为AJAX应用程序生成HTML以使其可search。 可能吗 ?

无头浏览器能够popup处理?

我尝试了https://hub.docker.com/r/wernight/phantomjs/和https://github.com/SeleniumHQ/docker-selenium/tree/master/StandaloneChrome Docker与浏览器的图像(第一个是真正无头的,第二个合并在xvfb下运行的真正的铬),似乎他们都不支持JavaScriptpopup窗口(通过window.open) – 因为总是只有一个元素在driver.window_handles。 可能是我应该尝试没有docker,但任何相关的信息将超级赞赏。 我用seleniumwebdriver python。

Selenium:无法在Docker Selenium Grid Setup上运行GhostDriver(phantomJS)节点

我正在尝试使用Selenium Grid设置和https://github.com/SeleniumHQ/docker-selenium上的docker镜像来运行自动化脚本。 我能够得到Docker Selenium Hub并准备好去。 在启动集线器并产生4个GhostDriver节点后,这就是我在Grid控制台上的样子: 现在运行我的testing后,指向他们新的中心超时试图打我公司的任何内部网站(例如http://test.domain.com ),但如果我指出我的testing运行对http://例如www.google.com 。 这就是说,这似乎是一个显而易见的原因是Docker使用一些DNS不应该的问题,但事实并非如此。 我通过validationresolv.conf指向一个有效的DNS条目(而不是8.8.8.8或类似的东西)来validationdocker容器指向的DNS。 另外,我可以ping和curl内部URL,所以看起来像Docker容器应该能够打内部URL。 以下是Selenium Hub的日志输出: 20:49:09.649 INFO – Selenium build info: version: '3.4.0', revision: 'unknown' 20:49:09.650 INFO – Launching Selenium Grid hub 2017-06-08 20:49:10.221:INFO::main: Logging initialized @949ms to org.seleniumhq.jetty9.util.log.StdErrLog 20:49:10.239 INFO – Will listen on 4444 2017-06-08 20:49:10.297:INFO:osjs.Server:main: jetty-9.4.3.v20170317 2017-06-08 20:49:10.336:INFO:osjs.session:main: DefaultSessionIdManager workerName=node0 2017-06-08 20:49:10.336:INFO:osjs.session:main: No […]

Docker Phantomjs驱动程序访问

我有一个docker容器,它的弹簧启动应用程序。 从这个docker容器我想访问本地phantomjs驱动程序。 当我在Docker中运行我的容器时,它给出'驱动程序可执行文件不存在:/ usr / bin / phantomjs'exception,但是我的phantomjs驱动程序存在于此path下。 这个docker容器如何访问'/ usr / bin / phantomjs'文件? 我应该在Docker文件中添加这一行VOLUME / usr / bin / phantomjs吗? 幻影版本是:2.1.1

CasperJS不会加载由Angular路由器注入的内容

我在GitHub上准备了一个示例项目 ,以配合我正在编写的关于如何为dockerized应用程序编写functiontesting的课程。 该应用程序有一个是Angular2单页面应用程序的一部分,我试图用CasperJStesting这个应用程序(我也试过与下面解释的相同问题的Behat)。 当在CasperJS中运行testing时,就好像Angular中的路由不会加载testing,因此我可以断言索引模板中的东西存在(例如页面标题),但是<app-root></app-root>标记不会加载testing。 代码 这里是索引模板: <!doctype html> <html lang="en"> <head <meta charset="utf-8"> <title>TestProject</title> <base href="/"> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <app-root></app-root> </body> </html> testing是: casper.test.begin('Tests homepage structure', function suite(test) { casper.start('http://web', function() { // This works because the title is set in the "parent" template. test.assertTitle("TestProject", "Title is correct"); casper.wait(2000); // This fails, […]

在Docker容器上运行时,phantomjs需要Fusion.app库

我试图在docker image python:2.7-alpine上运行phantomjs python:2.7-alpine使用phantomjs-2.1.1-linux-x86_64.tar.bz2的二进制文件。 但是当我用selenium调用我的Python脚本时,我得到了以下消息: h: Fusion.app/Contents/Library/: not found 安静地确定这是与VMWare有关,但不知道为什么这会在docker集装箱上popup。 这是我的docker代码: docker run –rm \ -e DEBUG=1 \ -v $$PWD:/root \ -w /root \ –net=mytests_default \ python:2.7-alpine \ sh -c " pip install requests selenium && \ PATH=phantomjs-2.1.1-linux-x86_64/bin/:$$PATH python $(test)"

如何在Docker容器中为PhantomJS使用其他参数?

我有一个PhantomJS的docker集装箱。 它的工作原理,但我不能把任何params幻灯片: docker run —rm fizzka/phantomjs-source-capture http://phantomjs.org 这是工作 docker run —rm fizzka/phantomjs-source-capture –proxy=185.72.225.18:3128 http://phantomjs.org 它不起作用。 我如何做到这一点,并改变我的代码? Dockerfile: FROM wernight/phantomjs COPY src/printSource.js / ENTRYPOINT ["phantomjs", "printSource.js"] CMD ["–help"] 和我的printSource.js var system = require('system'); var url = system.args[1]; if (!url || url == '–help') { console.log("Usage: <docker-image-run> URL"); phantom.exit(); } var page = require('webpage').create(); page.settings.userAgent = 'Mozilla/5.0 […]

如何在Docker环境中testingangular度应用程序而无需打开浏览器?

目前,我试图在Docker环境中使用ngtesting运行angular度应用程序的unit testing案例,所以它打开浏览器我不需要在prod发生,所以我试图运行testing – 浏览器PhantomJS,但它不是加工。 得到这个错误22 08 2017 11:52:42.355:WARN [karma]:没有捕获的浏览器,打开http:// localhost:9876/22 08 2017 11:52:42.370:INFO [karma]:Karma v1.7.0 server启动在http://0.0.0.0:9876/ 22 08 2017 11:52:42.370:信息[启动器]:启动无限并发浏览器PhantomJS 22 08 2017 11:52:42.382:INFO [启动程序]:启动浏览器PhantomJS 68没有捕获的浏览器,打开本地主机:9876/22 08 2017 11:53:42.382:WARN [发射器]:PhantomJS在60000毫秒没有被捕获,正在查杀。 22 08 2017 11:53:44.383:WARN [发射器]:PhantomJS在2000毫秒没有被杀害,发送SIGKILL。 22 08 2017 11:53:46.385:WARN [发射器]:PhantomJS在2000毫秒内没有被SIGKILL杀死,继续。

在Kubernetes上运行PhantomJS Selenium节点

有没有人有一个Dockerfile或build议使用Kubernetes上运行phantomJS selnium网格节点? 我能够在Docker中本地运行泊坞窗图像,并注册到网格中心,但同一个节点在Kubernetes中运行时似乎没有连接到网格中心。 同样的设置可以很好地适用于在具有Chrome和Firefox的Selenium网格节点的情况下在kubernetes中运行的其他Docker镜像。 我一直在试图让它运行的两个示例图像是: this和this 。 每个在Docker中都起作用(至less连接到集线器;后者在连接后有一个可能与selenium无关的bug),但是当在kubernetes中运行时,它只会吐出通常的三个日志消息中的第一个: [INFO – 2017-03-06T15:28:42.018Z] GhostDriver – Main – running on port 4444 但是,它永远不会连接到集线器,即使我连接到它和exec bash,可以从这个节点wget到集线器容器。 seluser@selenium-node-phantomjs-f8vj6:/$ wget selenium-hub:4444 –2017-03-06 15:33:29– http://selenium-hub:4444/ Resolving selenium-hub (selenium-hub)… 100.68.165.77 Connecting to selenium-hub (selenium-hub)|100.68.165.77|:4444… connected. HTTP request sent, awaiting response… 200 OK … 它在本地连接: [INFO – 2017-03-06T15:31:56.443Z] GhostDriver – Main – running on port […]

带有Phantomjs save_screenshot的Selenium webdriver在Docker容器中不起作用

代码在我的本地机器上工作,但不能在Docker容器中工作。 在我的本地机器上,它保存了所需网站的图像。 在Docker容器中,它使用正确的名称保存.png文件,但图像只有8kB,并且是空白的。 没有错误信息。 Docker容器可以访问因特网,因为从容器的bash pinging google.com显示Internet连接正在工作。 同样,如果我试图让它显示从这个页面的HTML,它在Docker中失败,但在我的本地系统上成功。 任何想法这里有什么问题? 这是调用Selenium和phantomjs的代码: def init_driver(): driver = webdriver.PhantomJS() driver.set_window_size(1600, 1200) # must give the page enough time to fully render driver.implicitly_wait(WAIT_TIME) return driver def render_page(driver, url): driver.get(url) def save_image(driver, path): driver.save_screenshot(path) IMAGE_NAME = 'test_image.png' WAIT_TIME = 10 url = 'https://www.google.com/' driver = phantom_tools.init_driver() render_page(driver, url) save_image(driver, IMAGE_NAME)