4

要素を見つけたら、a としましょうspan。その属性またはそのようなものを保存して、span画面上に存在しなくても「クリック」できないようにする方法はありますか?

私が必要としているのspanは、画面から削除するいくつかのアクションを実行した後に、そのページが指しているページにアクセスする方法です。

watir-webdriver は GUI テスト用であるため、人間が実行できるアクションのみを許可することになっていることを理解しています。しかし、私はまだ方法があることを望んでいました。

4

2 に答える 2

4

あなたのウェブページのソースを確認する必要がありますが、一般的には次のようにできます。

1.9.3p392 :001 > require "watir-webdriver"
 => true 
1.9.3p392 :002 > b = Watir::Browser.start "stackoverflow.com"
 => #<Watir::Browser:0x7f93652a09b4f1a2 url="http://stackoverflow.com/" title="Stack Overflow"> 

新しい変数を定義する

1.9.3p392 :004 > a = b.span(:id, "hlinks-custom").a(:text, "about").href
 => "http://stackoverflow.com/about" 

別のリンクをクリックします

   1.9.3p392 :005 > b.a(:text, 'faq').click
     => [] 
    1.9.3p392 :006 > b.title
     => "Frequently Asked Questions - Stack Overflow" 

最後に、ブラウザをリダイレクトして変数「a」を事前設定します

1.9.3p392 :007 > b.goto a
 => "http://stackoverflow.com/about" 
于 2013-04-21T22:56:37.070 に答える
2

はい、方法があります。要素が存在するときに保存して、後で使用するだけです。次の例では、watir が google.com に移動し、「mark...」が出力されているのを見て、ブラウザを閉じても、変数「element」がその中にあったものの値を保持していることがわかります...

  require 'watir';

  ie = Watir::Browser.new();
  ie.goto("google.com");
  puts("mark...");
  element = ie.span(:id, "gbqfsa").html();
  sleep(5);
  #close the browser while you sleep...
  puts(element);

要素のhtml値を出力するため、参照は引き続き保持されます

于 2013-04-21T21:37:01.700 に答える