Android デバイスでオプション リストを見ています。オプション コードは次のようになります。
<div class = "addMode">
<label for ="activityType">Activity Type</label>
<div class="dataRow activityType">
<select id="activityType" class="valid">
<option value ="1" selected="selected">Appointment</option>
<option value ="2">Call</option>
<option value ="3">To-Do</option>
</select>
</div>
<div>
最初にxpathを試しました:
el = @d.find_elements(:xpath, "//*[@id='activityType']/option")
el.each do |t|
if t.text() == 'Call' then
t.click
break
end
end
これは、ポップアップ メニューから [呼び出し] アクティビティを選択するために機能しますが、選択されるとすぐに現在のページを終了し、呼び出し元のページに戻ります。
次に試しました:
el = @d.find_element(:id, "activityType")
el.click
el_opt = el.find_elements(:tag_name, "option")
el_opt.each.do |t|
if t.text() == 'Call' then
t.click
break
end
end
これも、選択を行ってから画面を終了するという同じ結果になりました
その後、次のようになりました。
opt = Selenium::WebDriver::Support::Select.new(@d.find_element(:xpath, "//*[@id='activityType']"))
opt.select_by(:text, "Call")
これも選択を行い、ページを終了しました
それから、私はタッチアクションを使用できるかもしれないと考えました。私はまだRubyに不慣れで、タッチスクリーンのAPIを間違って読んでいる可能性が最も高いです。私は次のことを試しました:
TapObject = Selenium::WebDriver::TouchScreen.new(@d.find_element(:id, "activityType"))
el = @driver.find_element(:id, "activityType")
el_opt = el.find_elements(:tag_name, "option")
el_opt.each do |t|
if t.text() == "Call" then
TapObject.single_tap(t)
end
end
これに対して未定義のメソッド「touchSingleTap」エラーが発生します
この問題に遭遇した人はいますか、または現在のページを終了せずにモバイルデバイスで選択したものをクリック/タップする方法を知っていますか?
ありがとう、
ジェフ