相关疑难解决方法(0)

用量角器运行什么是好的无头浏览器?

新用户在这里.

经过几个小时的建立我的烟雾和回归测试后,我在网上阅读了许多案例后发现,已知phantomjs与量角器一起运行会遇到麻烦.詹金斯一直在为它迄今为止所做的所有任务运行幻影.

他们需要这些测试作为没有安装窗口系统的ci的一部分运行.

所以如果有完全无头浏览器或无头镀铬(这将是最有益的)以及逐步设置它的推荐,我将不胜感激.我已经有一个conf.js和一个e2e.conf.js文件.我的代码与chrome完美搭配.

我相信,我正在使用iMac和selenium webdriver.

编辑:问题=量角器不适用于phantomjs.我做了什么=使用不同的网络元素,并搜索,如果有人遇到类似的情况.还搜索了用于量角器的无头浏览器,无法找到合适的解决方案.

javascript selenium headless-browser jenkins protractor

16
推荐指数
2
解决办法
1万
查看次数

如何在不使用Selenium服务器的情况下从量角器运行Chrome无头

通过运行xvfb绑定到DISPLAY:10然后运行Selenium,我让Chrome通过Selenium服务器无头工作DISPLAY=:10 webdriver-manager start.所以这一切都很好.

通过directConnect: true在我的protractor.conf中指定,我也可以直接从量角器运行Chromedriver .

我想做的是两者的结合,即.直接运行chromedriver(NO SELENIUM!),但不知何故指示它在DISPLAY上运行无头:10.

在拓扑方面,一切都在开发人员的PC上运行.没有涉及服务器.在下面的评论中,我提到了一个节点服务器:这用于启动量角器而不是从命令行更常见的启动.我想要量角器在DISPLAY上运行:0所以我可以看到它的输出,测试失败等.当它使用chromedriver生成chrome时,我希望chrome在DISPLAY上运行:10.我这样做的原因是我希望chrome窗口比我的物理屏幕更大.请参阅如何截取移动外形的完整高度?为背景.

selenium selenium-chromedriver selenium-webdriver protractor

6
推荐指数
1
解决办法
2264
查看次数

我试图用selenium-webdriver截取元素的截图,但是抛出了UnsupportedOperationError?

我目前的代码看起来像这样.

var webdriver = require('selenium-webdriver'),
until = webdriver.until,
By = webdriver.By,
fs = require('fs');

var driver = new webdriver.Builder()
  .forBrowser('chrome')
  .build();

driver.get('https://www.google.com/');

driver.findElement(By.css('#hplogo')).then((el) => {
  el.takeScreenshot().then((data) => {
    var base64Data = data.replace(/^data:image\/png;base64,/, "");
    fs.writeFile(__dirname + "/out.png", base64Data, 'base64', (err) => {
        if(err) console.log(err);
    });
  });
});
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到错误消息:

/home/project/node_modules/selenium-webdriver/lib/promise.js:654
    throw error;
    ^

UnsupportedOperationError: unknown command: session/797c146086bc89ad245f76ce99302a48/element/0.9715665113180876-1/screenshot
    at WebDriverError (/home/project/node_modules/selenium-webdriver/error.js:26:26)
    at UnsupportedOperationError (/home/project/node_modules/selenium-webdriver/error.js:435:26)
    at Object.checkLegacyResponse (/home/project/node_modules/selenium-webdriver/error.js:578:13)
    at /home/project/node_modules/selenium-webdriver/lib/webdriver.js:360:15
    at Promise.invokeCallback_ (/home/project/node_modules/selenium-webdriver/lib/promise.js:1329:14)
    at TaskQueue.execute_ (/home/project/node_modules/selenium-webdriver/lib/promise.js:2790:14)
    at TaskQueue.executeNext_ (/home/project/node_modules/selenium-webdriver/lib/promise.js:2773:21)
    at /home/project/node_modules/selenium-webdriver/lib/promise.js:2652:27
    at /home/project/node_modules/selenium-webdriver/lib/promise.js:639:7
    at …
Run Code Online (Sandbox Code Playgroud)

javascript selenium webdriver selenium-webdriver

2
推荐指数
1
解决办法
1111
查看次数