在测试自动化上获取屏幕截图时的字符编码问题(损坏的字符)

时间:2018-05-29 13:26:26

标签: ruby selenium selenium-webdriver automated-tests capybara

我们有一个自动化项目,用硒webdriver和红宝石(水豚)开发。 我们在测试用例失败时收集截图。当我们在本地机器上运行案例时,屏幕截图完全正常。但是当我们在远程计算机上运行它们时,我们面临着屏幕截图上的字符编码问题。 你有任何想法解决这个问题吗?

示例截图:

screenshot

Chromedriver版本:2.38.552522

Chrome版本:Google Chrome 66.0.3359.139

远程机器:

NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

驱动程序配置:

Capybara.default_driver = :headless_chrome
  Capybara.javascript_driver = :headless_chrome   
  Capybara.register_driver :chrome do |app|
    Capybara::Selenium::Driver.new(app, browser: :chrome)
  end    
  Capybara.register_driver :headless_chrome do |app|
    options = Selenium::WebDriver::Chrome::Options.new
    options.add_argument 'headless'
    options.add_argument 'disable-gpu'
    options.add_argument 'disable-popup-blocking'
    options.add_argument 'no-sandbox'
    Capybara::Selenium::Driver.new app, browser: :chrome, options: options
  end

收集截图:

page.save_screenshot('testResults/report_smoke_mobile/screenshot_'+scenario.name+'.png')

2 个答案:

答案 0 :(得分:0)

将解放字体安装到docker image修复了问题

yum -y install liberation-*

答案 1 :(得分:0)

将字体安装到docker镜像。这对我有用!

yum groupinstall -y Fonts