2014-04-23 2 views
0

J'essaie de convertir nos tests de sélénium en rspec et capybara mais je rencontre quelques problèmes. En sélénium Nous utilisons une fonction appelée verifyText qui vérifie essentiellement si deux valeurs sont similaires. cependant avec rspecs et capybara, j'ai des problèmes quand le texte est en français avec des accents.problèmes d'encodage avec rspec

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

Je pense que c'est un problème de codage. Mais, j'ai spécifié l'encodage à ISO-8859-15 mais ça ne marche toujours pas pour moi. Voici comment le fichier de test ressemble à:

# -*- 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" 

Voici comment verifyText ressemble.

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

Essayez avec 'utf-8' au lieu de' iso-8859-15' en haut de vos spécifications. – backpackerhh

+0

J'ai essayé d'utiliser encoder au lieu de force_encoding et cela a fonctionné :) – hjelpmig

Répondre

0

Salut, j'ai trouvé la solution moi-même. J'utilisais la mauvaise fonction d'encodage. J'utilise la fonction suivante et cela a résolu mon problème.

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