2014年9月17日水曜日

ブラウザによって取得テキストのスペースコードが違う?!

ブラウザによってSeleniumが取得するテキストが違う場合がありました

waitForTableコマンドのJavaへの変換コードは、FireFoxでは実行NGだが、IEではOKChromeNGとなりました

  説明の文字表現:□・・・全角スペース []・・・半角スペース \n・・・改行

SeleniumIDEで、
waitForTable (css=form[name="form_rcv"] > table.6.1, 自動で確認する[]1分間隔□[]3分間隔□[]5分間隔□[]10分間隔□[]15分間隔□[]20分間隔) 

と指定した場合のJavaへの変換コードは下の通り

for (int second = 0;; second++) {
  if (second >= 60) fail("timeout");
  try {
    if ("自動で確認する 1分間隔  3分間隔  5分間隔  10分間隔  15分間隔  20分間隔".equals(selenium.getTable("css=form[name=\"form_rcv\"] > table.6.1"))) break;
  } catch (Exception e) {}
  Thread.sleep(1000);
}

実行NGになったのは、スペースコードの違いでした

対処として、
検証対象の語句間が各ブラウザによって以下のように違う為、ブラウザ判定により検証テキストを指定しました。

検証テキストの内容

[FireFox]
 自動で確認する\n1分間隔\n3分間隔\n5分間隔\n10分間隔\n15分間隔\n20分間隔

[IE]
 自動で確認する[]1分間隔□[]3分間隔□[]5分間隔□[]10分間隔□[]15分間隔□[]20分間隔

[Chrome]
 自動で確認する[]\n[][][][][][][]1分間隔□\n[][][][][][][]3分間隔□\n[][][][][][][]5分間隔□\n[][][][][][][]10分間隔□\n[][][][][][][]15分間隔□\n[][][][][][][]20分間隔□

※どの場合でも上の様な文字列になるかは不明です。文字列を取得できるのに、エラーになる場合にスペースコードを調べてみると良いでしょう。

0 件のコメント:

コメントを投稿