我们想在构建脚本中运行我们的硒测试以及其他单元测试,但是鉴于构建在詹金斯(Jenkins)上运行(詹金斯(Jenkins)),该材料正在作为服务运行,因此必须无头运行测试.我们的硒测试以PHP编写,到目前为止我看到的所有内容似乎都适用于JavaScript或Python. 有什么方法可以使我们的php硒测试无头(最好使用与不运行无头时相同的驱动程序,以便我们发现特定浏览器的问题)? 解决方案 这在PHP-Webdriver 1.11.0(2021-05-03)中得到了改善. 开始无头铬 $chromeOptions = new ChromeOptions(); $chromeOptions->addArguments(['--headless']); $capabilities = DesiredCapabilities::chrome(); $capabilities->setCapability(ChromeOptions::CAPABILITY_W3C,
以下是关于 headless-browser 的编程技术问答
我想使用硒来自动执行一些Web任务(不是用于测试).我想我已经安装了Selenium RC服务器,但是无法编写"测试脚本",因为我在PHP中找不到客户端驱动程序(请参阅: http://seleniumhq.org/download/). 我有没有办法将硒与PHP一起使用?这似乎暗示我需要phpunit http:///www.phpunit.de/manual/电流/en/selenium.html .我只想自动执行一些任务,而不是参与完整的测试套件. 解决方案 尝试以下内容 安装phpunit并工作 您的PC上也有Java SDK和JRE. 现在使用硒IDE记录测试用例. 将测试容器导出到PHP文件. 使用这些导出的功能创建了测试用例库. 创建套件来调用库中的函数/测试. 现在使用Java命令执行启动Selenium Server. 使用phpunit执行套件. for cordrence如何编写这些文件单击在这里Git Hub 其他解决
有没有用于PHP的无头浏览器库?想要内置JS引擎的东西. foss 首选. 解决方案 phantomjs- http://phantomjs.org/ > phantomjs是带有JavaScript API的无头Webkit.它具有对各种Web标准的快速和本机支持:DOM处理,CSS选择器,JSON,CANVAS和SVG. 您可以将其与 php-phantomjsrunner em>(现在已弃用)如果您想要或烤自己 . 设置并准备开始使用Phantomjs进行测试时,请选择各种 测试框架/a> 您可以使用. 我最近也遇到 tutsplusplus 应该帮助任何人. 其他解决方案 查看 mink ,它支持 zombie 作为后端. 看起来很好,并且似乎得到了很好的支持. 编辑: 不幸的是,PHP没有本机JavaScript解释器;因此,如果您正在寻找包括JavaScript支持在内的A pure PHP实现,目前,您将找不到.对于
我正在使用以下脚本使用phantom.js刮擦图像: var page = require('webpage').create(); url = 'https://www.everlane.com/collections/mens-luxury-tees/products/mens-crew-antique' page.open(url, function(status) { if (status !== 'success') { console.log('error'); phantom.exit(); return; } var a = page.evaluate(function() { return document.getElementsByTagName('img'); }); SrcAlt = []; for (var i=0; i
我需要一个无头浏览器才能进行网络贴花.我尝试了3个不同的无头浏览器( Phantomjs,Firefox,Chrome ). 使用 phantomjs 时,它会产生一些错误(即):ARMV7处理器需要GUI . 然后,正在使用 firefox和geckodriver ,它在路径和连接中显示错误.. ,我将带有Chromedriver的Chrome无头浏览器移动到Chromedriver ,但它也显示出与Firefox相同的错误 . 所以,我需要一个适用于ARMV7处理器的无头浏览器. 任何人都可以建议解决方案或任何其他方法以进一步进行. 解决方案 在类似情况下安装较低版本的硒版本修复了我的问题. pip install selenium==2.53.5 其他解决方案 尝试以下程序对我有用. geckodriver v0.19.0建议以下版本: Firefox 55.0(及更大) 硒3.5(和更大) 从 https://gith
每当我尝试使用phantomjs进行测试时,Dalek就会给我这个错误.但是使用GoogleChrome测试正确运行. Running tests /Users/user/node_modules/dalekjs/node_modules/dalek-browser-phantomjs/index.js:273 this.spawned.kill('SIGTERM'); ^ TypeError: Cannot read property 'kill' of null at Object.PhantomJSDriver.kill (/Users/user/node_modules/dalekjs/node_modules/dalek-browser-phantomjs/index.js:273:17) at EventEmitter.emit (/Users/user/node_modules/dalekjs/node_modules/
我使用NightMarejs创建了一个具有表单的ExpressJS应用程序,当我们填写表单和提交时,它将请求发送到某些远程表单并计算数据并返回这些结果.但是问题在于它仅在单个客户提交表单时才起作用.当多个客户同时提交表格时,它无效.这样做的原因是什么?如何解决这个问题? 前端JS脚本 $(document).ready(function () { $("#calculate-form").submit(function (event) { var request; if (request) { request.abort(); } var $form = $(this); var $inputs = $form.find("input, select, button, textarea"); var serializedData = $form.serialize(); $inputs.pro
尝试用Casperjs刮擦网页.网页检查以查看浏览器是否为IE 6/7. 通过用Casperjs的用户代理似乎无法满足其状况.通过:Mozilla/4.0(兼容; MSIE 6.0; Windows NT 5.1) 以下是页面进行的检查以确定浏览器 agt = navigator.userAgent.toLowerCase(); browserType = navigator.appName; if( ((browserType.indexOf("xplorer") != -1) && (agt.indexOf("msie 6.") != -1)) || ((browserType.indexOf("xplorer") != -1) && (agt.indexOf("msie 7.") != -1)) ) { } else { alert("This "+ browserType + " Version is not supporte
我正在尝试使用无头浏览器来爬行目的,以在我正在开发的开源项目中添加SEO功能. 项目示例网站是通过Azure网站部署的. 我尝试了几种方法来使用不同的解决方案(例如selenium .net(phantomjsdriver,htmlunitdriver,...),甚至独立的phantomjs .exe文件. i正在使用无头浏览器,因为该站点基于durandaljs,因此它需要执行脚本并等待条件是真实的,以返回生成的HTML.因此,可以使用诸如WebClient/Webresponse类或HTMLagilityPack之类的东西,用于非Javascript网站的正常工作. 所有上述方法都在我的Devbox Localhost环境中起作用,但是当将网站上传到Azure网站时,问题出现了.当使用独立phantomjs时,该站点在访问URL端点时冻结,并且一段时间后返回HTTP 502错误.如果使用Selenium webdriver,我会得到 OpenQA.Sel
我在Heroku(免费版本)上运行了一个NodeJS服务器.服务器从客户端(传递参数)接受HTTP帖子,并在无头浏览器中执行Web请求(使用参数).无头浏览器称为 horsemanjs . "骑士是一个节点.JS模块,它使使用phantomjs成为一种乐趣.它具有可直接的链条API,可以理解的控制流,对多个选项卡的支撑和内置的jQuery." 当我从客户端(我的计算机)发送请求(实际上for 20个请求的循环)到服务器时,服务器代码正常工作(执行20个HorseManjs Web请求),并返回预期值.然后,它等待下一个连接.这一切都很好. 问题是,当我尝试与两个不同的客户端(我的计算机和电话)连接到服务器时,它会崩溃.我可以重新启动服务器并成功使用一个客户端.如何使其处理多个客户? 崩溃时错误: child_process.js:788 child.stdout.addListener('data', function(chunk) {
嗨,我想知道节点JS和Zombie JS是否有能力将JavaScript文件注入无头浏览器,类似于您可以使用Phantomjs. 例如,在Phantom JS中,您会做: page.injectJs("amino/TVI.js") 我已经使用了phantomjs,它确实做了我想做的事情,但是由于使用Phantom JS所需的高内存,我正在测试其他选项. 解决方案 您可以将脚本标记附加到文档对象中,因为它支持僵尸中的DOM API. 以下示例显示了如何将jQuery插入Zombie主页: var Browser = require("zombie"); var assert = require("assert"); // Load the page from localhost browser = new Browser() browser.visit("http://zombie.labnotes.org/", function () {
有没有办法获得实时的视图,可以了解哪些phantomjs(或类似)正在渲染? 我想开发我的自动化脚本,同时与它针对的页面进行交互(或至少看到屏幕截图). 解决方案 不,没有这样的东西. slimerjs 具有与phantomjs相同的API,但运行壁虎引擎.您可以直接看到发生了什么,并用您将无法与之互动.您可能需要使用Screengrabber在测试长时间录制交互视频,如果您在测试案例中没有遇到问题,则不想再次运行测试套件. 调试phantomjs脚本的明显方法是使用page.render()渲染许多屏幕截图,并使用 将某些对象记录到控制台上 console.log(JSON.stringify(yourObj, undefined, 4)); 使用不错的格式. 其他解决方案 解决方案我们使用的是一个自动屏幕截图,但如果有例外,phantomjs会将当前页面渲染到您可以稍后检查的文件中. 这是用于测试执行阶段. 编写测试时,只需在试图根据它
我通过硒的无头(phantomjs)浏览器运行的网站具有不同的时区,因此我遇到了许多条目的错误日期.因此,我的刮擦结果显示了错误的日期/时间(我在EST,看起来网站默认值为GMT). 我是从也问了同样的问题编辑:我想要的是将网站从默认值(GMT)更改为我的时间(EST).这将避免不得不增加数小时;日期将反映我对我的状况. 这是我得到的: from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait #from selenium.webdriver.support.select import Select driver = webdriver.PhantomJS(executable_path=r'C:/phantomjs.exe') driver.get('http://www.oddsportal.com/hockey/usa/nhl/results/')
我已经看到您可以在Heroku上更改构建的帖子,将phantomjs与Cedar堆栈一起使用,但是可以在Unicorn堆栈上运行无头浏览器吗? 解决方案 是的,有人已经写了一个用于包括phantomjs的构建包(Internet和开源很棒). 如果您想在Heroku Dyno上运行无头phantomjs,则需要: 切换到Heroku Multi-Buildpack: > 设置您的应用程序的Ruby BuildPack: https://github.com/heroku/heroku/heroku/heroku-build-build-build-pack-ruby/a > 设置phantomjs buildpack满足您的需求: > 必须将多构建包配置为官方的Heroku Buildpack.然后,您需要将其他两个buildpack URL添加到.buildpacks文件中.还有其他详细信息用于在上面的链接上配置每个构建包. 使用此功能,您应该能够部
我无法使用selenium webdriver(又称硒2)2.53.0,带有phantomjs 1.2.0. 有解决方法吗?我必须使用WebDriver 2.41.0而不是最新版本(2.53.0). 解决方案 phantomjsdriver-1.2.1.jar提供了硒2.53.0.如果phantomjsdriver-1.2.0无法与硒-2.53.0一起使用,则可以使用phantomjsdriver-1.2.1. pom.xml的依赖关系应如下: org.seleniumhq.selenium selenium-java 2.53.0 com.codeborne phantomjsdriver
通过Casperjs文档,我找不到可以从客户端JavaScript看到Console.log的位置.这可能吗? 解决方案 我不确定要完全理解您的问题,但是您可以做以下操作: var casper = require('casper').create({ logLevel: "debug" }); casper.on('remote.message', function(message) { this.echo(message); }); casper.start('http://google.com/', function() { this.evaluate(function sendLog(log) { // you can access the log from page DOM console.log('from the browser, I can tell you there are ' + log.le
我一直在寻找一个解决方案,以在OSX中进行无头测试.但是我需要保存服务器返回的文件的能力. 我已经测试了硒,phantomjs,casperjs,并且已经研究了我可以在网上找到的任何东西. 他们都不支持下载.我想念什么吗?有没有支持下载的无头浏览器/测试框架? 解决方案 您能做的是: 启动虚拟显示(请参阅启动Firefox浏览器具有配置为的首选项,自动保存csv文件 在Python中使用其他注释(使用 pyvirtualdisplay ) xvfb包装器): from os import getcwd import time from pyvirtualdisplay import Display from selenium import webdriver # start the virtual display display = Display(visible=0, size=(800, 600)) display.start() # co
我正在尝试通过防止下载CSS/其他资源来加快Python中的硒/phantomjs Websraper.我需要下载的只是IMG SRC和ALT标签.我找到了此代码: page.onResourceRequested = function(requestData, request) { if ((/http:\/\/.+?\.css/gi).test(requestData['url']) || requestData['Content-Type'] == 'text/css') { console.log('The url of the request is matching. Aborting: ' + requestData['url']); request.abort(); } }; via:控制phantomjs要跳过下载某种资源? 在python驱动的硒中我如何/在哪里可以实现此代码?或者,还有另一种更好的方法可以
当我运行测试西装时,我发现其中一些文本会悬挂在很长的时间(15分钟到半小时)的情况下,而phantomjs会不断报告: Asynchronous Sessions cleanup phase starting NOW Asynchronous Sessions cleanup phase starting NOW Asynchronous Sessions cleanup phase starting NOW Asynchronous Sessions cleanup phase starting NOW Asynchronous Sessions cleanup phase starting NOW Asynchronous Sessions cleanup phase starting NOW Asynchronous Sessions cleanup phase starting NOW Asynchronous Sessions cleanup phase starting