2

Watir と Firewatir を使用して真にクロス ブラウザー互換性のあるテストを実行できるようにするための障壁の 1 つ (私の知る限り、決して取り除かれたことはありませんが、おそらく私は間違っていて、これは少し前に解決されました) は、Watir がもともと設計されていたということです。 Firewatir を作成した人は誰でもそれを破り、それをゼロベースにしましたが、1 ベースのインデックス作成を使用することです。

それぞれの決定には十分な歴史的理由があると確信しており、どちらが正しいかについて議論したくはありませんが、少なくともこれは影響を与えるため、変更を加えずにそれぞれの下で実行されるスクリプトを作成しようとするテスターに​​とっては苦痛でした。 :index による要素の識別。これは、やむを得ない場合もあります。

Watir-Webdriver に移行することで、より均一なプラットフォームを作成できるのではないかと考えています。

また、最新の Watir と Watir-Webdriver の違いについての参照はありますか? たとえば、最近の質問 here では、.value= は .set に代わる「イベントなしの直接セット」として実装されておらず、基本的に .set とまったく同じように動作することがわかりました。

4

1 に答える 1

4

この問題の最善の解決策は、Watir 1.X が構成可能なインデックスを取得することです。その作業の大部分は Bret のゼロ インデックスブランチで既に行われていると思います。

watir-webdriver に移行する際に、この問題を解決するために次のモンキー パッチを追加しました。

class Fixnum
  def as_index
    Config.webdriver? ? self - 1 : self
  end
end

次に、スクリプトで次のようにします。

browser.div(:index => 1.as_index)

その後、Watir から完全に離れたとき、コード ベース全体で as_index を grep し、インデックスを 1 つ減らすだけで済みました。

この wiki ページで、Watir と watir-webdriver の主な違いを文書化しようとしました。私はそれが欠けていると確信しており、誰かがそれを改善したいのであれば、それはもちろん大歓迎です:)

于 2011-07-01T16:54:40.110 に答える