私はテストを始めたばかりで、Selenium を使用してローカル言語を検証する方法について質問があります。言語を選択できるリンクがあるとします。言語を選択した場合、それをどのように確認できますか?
4 に答える
ページ上の何でも!私たちのページが1つの要素だけで構成されていると仮定しましょう
<div>
It's time to kick ass and chew bubble gum!
</div>
また
<div>
Il est temps de botter le cul et mâcher de la gomme à bulles!
</div>
次に、Seleniumを使用して、要素を取得し、内部テキストを取得して検証できます。Javaでの例:
// assuming driver is a good WebDriver instance
WebElement elem = driver.findElement(By.xpath("//div"));
if (elem.getText().contains("kick ass")) {
System.out.println("It's English!");
} else if (elem.getText().contains("botter le cul")) {
System.out.println("It's French!");
}
Java 7の時点では、Stringでswitch-caseを使用することもできるため、多くの言語に対してダイジェストテストを行うことができます。
l10n には辞書ファイルを使用します。Dictionary は、.xml のように文字列が格納された xml ファイルです<string key="Cancel">Cancel</string>
。したがって、テスト目的で、すべて</string>
を次のようなものに置き換え、 との@@@</string>
間のすべてのスペースを '_' に置き換えます (メモ帳 ++ で ctrl+h を使用して実行できます。たとえば、スペースはこの回答の助けを借りて置き換えることができます)。次に、私たちのウェブサイトで修正された辞書に対応する言語を選択します。次のステップは、Selenium IDE スクリプトによって行われます。Selenium IDE コマンドを使用して Web サイト全体をブラウズし、ページのテキストを保存します。次に、@@@ で終わっていないすべての単語を解析してエコーし、問題がないかどうか、または翻訳する必要がある単語がハードコードされているかどうかを分析します。<string key="...">
</string>
storeBodyText | text
純粋な自動化ではありませんが、何もないよりはましです :) このアプローチは、xml-dictionary ファイルだけでなく、文字列に使用するすべてのストレージにも適用できると思います。
PS。ローカリゼーション テストを実行したくないが、リンクをクリックしたときに何らかの言語が適用されていることを確認したい場合 (これはまさにあなたが探しているものです)、リンクをクリックした後にテキストを取得できます。任意の要素から取得し、予想されるテキスト ( storeText(locator, variableName)
IDE の場合) と比較します。
まあ、あなたはできます
- ページでその言語のフラグを検索します
- 数値の形式または時刻の形式を確認します (一部のロケールでは変更されます)
- 既知のテキスト (挨拶など) が変更されていることを確認します。と言っ
Good evening
てくださいDobrý večer
(チェコ語でした ;) )
<!-- Using Selenium IDE -->
<tr>
<td>storeAttribute</td>
<td>//html@lang</td>
<td>language</td>
</tr>
<tr>
<td>echo</td>
<td>The label is ${language}</td>
<td></td>
</tr>