selenium - Watir/Capybara 和 PhantomJS 的奇怪偏移

标签 selenium selenium-webdriver phantomjs watir watir-webdriver

我想使用 Watir 和 PhantomJS 检测页面上元素的位置。 我使用 Capybara 的第二种方法产生了相同的偏移量。

虽然左侧的元素看起来不错,但右侧未对齐:

enter image description here 我在使用 element.wd.location 获取每个元素的位置之前和之后制作了屏幕截图,但偏移量始终相同。我对 capybara 使用了 evaluate_script.getBoundingClientRect()

有一件事在我看来很可疑:搜索输入字段未正确加载,不仅显示未对齐,而且大小不同,并且未显示放大镜。我不知道这是否会导致偏移。

我用纯 PhantomJS 2.1.1 (phantomjs file.js) 测试了它:

var fs = require('fs');
var page = require('webpage').create();

page.viewportSize = {
  width: 1024,
  height: 768
};

page.open('http://en.wikipedia.org/', function() {
  var positions = page.evaluate(function() {
    positions = [];
    elements = document.getElementsByTagName('IMG');
    for (var i=0, l=elements.length; i<l; i++) {
      pos = elements[i].getBoundingClientRect();
      positions.push(pos.left + ' ' + pos.top);
    };
    return positions;
  });

  fs.write('test.txt', positions.join("\r\n"), 'w');

  page.render('test.png');
  phantom.exit();
});

同样的结果:如果你打开 test.png,你会看到右边的图像(左边:952px,顶部:259px),但是 test.txt 显示它向左移动(左:891 像素)。

你知道什么会导致这个问题吗?

最佳答案

你知道什么会导致这种偏移吗?

PhantomJS v2.1.1 或嵌入式 Qt WebEngine 中的错误。

有什么解决方法吗?

没有。

但我还是希望它能正常工作,怎么办?

自己修理或雇人修理或等待修理。

请注意,该问题不再出现在 2.5 版中,但仍处于测试阶段:

https://github.com/ariya/phantomjs/milestone/16
https://bitbucket.org/ariya/phantomjs/downloads/

这是使用 phantomjs-2.5.0-beta 截取的屏幕截图:

enter image description here

关于selenium - Watir/Capybara 和 PhantomJS 的奇怪偏移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45225570/

相关文章:

r - 尝试使用 RSelenium chromedriver 时出现连接拒绝错误

java - xpath 元素识别 -- Cleaner Xpath

java - 通过WebDriverEventListener打印WebElement变量名

javascript - Selenium javascript webdriver 可以访问 javascript 全局变量吗?

javascript - 如何使用 CasperJS/PhantomJS 生成类似移动设备的高 DPI 屏幕截图?

java - 步骤失败 : SeleniumError: Unable to create new service: ChromeDriverService Build info: version: '3.141.59'

java - 使用 Selenium WebDriver 获取 Firebug 控制台输出

javascript - 将参数数组从node.js传递给CasperJS

node.js - azure:在node.js azure函数应用程序中服务器端SVG到PNG?没有任何作用

javascript - 无法选择谷歌地图输入的下拉菜单选项?