どのようにリンクをループするとワチールを使用して各1をクリックしてください
質問
Iは、グリッドを使用したWebページを有し、そしていくつかの列は、[サーバへのラウンドトリップによって]その列によって値をソートします列ヘッダーのリンクを持っています。
私はそれらの並べ替えリンクを識別し、連続して各1をクリックします単一ワチールテストを書きたいです。これは、ソートの発現から生じる一切のランタイム例外がない確実にスモークテストです。
私の質問は、(1)これらのリンクを識別し、(2)連続して、それぞれをクリックする最良の方法は何ですか?これは私がこれまで持っているものです。
$ie.table(:id, "myGrid").body(:index, 1).each do | row |
row.each do | cell |
## todo: figure out if this contains a sort link
## todo: click the link now, or save a reference for later?
end
end
解決
私はがが、ページの読み込みをトリガーするリンクをクリックするので、ループ内の各リンクをクリックすることができなくなると思うと、私はこれが他のワチールリンク要素を無効にすると信じています。
だから、私は何を示唆することで、リンクのIDを取得し、その後、クリックをしてお互いをループということです。
<時間>たとえば、私はあまりにも、それらの並べ替えリンクと意味のあるIDに特定のクラスを追加します。 線に沿って何かます:
<a id='sortby-name' class='sorting' href='...'>Name</a>
次に、あなたがこれでそれらを選ぶことができます:
$ie.table(:id, "myGrid").body(:index, 1).each do | row |
# pick sorting links' ids
sorting_link_ids = row.links.select{|x| x.class_name == "sorting"}.map{|x| x.id}
end
そして、あなたはこのようなあなたのクリック操作を行います:
sorting_link_ids.each do |link_id|
$ie.table(:id, "myGrid").body(:index, 1).link(:id, link_id).click
end
助け希望!
所属していません StackOverflow