【问题标题】:encoding issues with rspecrspec 的编码问题
【发布时间】:2014-04-23 08:41:11
【问题描述】:

我正在尝试将我们的测试从 selenium 转换为 rspec 和 capybara,但我遇到了一些问题。在 selenium 中,我们使用了一个名为 verifyText 的函数,它基本上检查两个值是否相似。但是,对于 rspecs 和 capybara,当文本是带有重音的法语时,我遇到了问题。

Failure/Error: verifyText "//div[@id='adview']/div[2]/div/div", "crédit"
   expected: "crédit"
        got: "crédit" (using ==)

我认为这是一个编码问题。但是,我已将编码指定为 ISO-8859-15,但它仍然对我不起作用。 下面是测试文件的样子:

# -*- encoding : iso-8859-15 -*-

describe "php-placeholder", type: :feature do
    it "placeholderFr_Placeholder" do
        verifyText "//div[@id='adview_aside']/div[2]/div/div", "crédit"

这是 verifyText 的样子。

def verifyText(id, value)
  (page.first(:xpath, id).text.force_encoding 'iso-8859-15').should == value
end

【问题讨论】:

  • 尝试在规范顶部使用 utf-8 而不是 iso-8859-15
  • 我尝试使用 encode 而不是 force_encoding 并且成功了 :)

标签: ruby selenium rspec capybara


【解决方案1】:

您好,我自己找到了解决方案。我使用了错误的编码功能。我使用以下函数,它解决了我的问题。

def verifyText(id, value)
  page.first(:xpath, id).text.encode('iso-8859-15').should == value
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多