我正在查看 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")
这也做出了选择,然后退出了页面
然后我想,我也许可以使用 Touch 操作我还是 Ruby 的新手,而且我很可能错误地阅读了 TouchScreen 的 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”错误
有没有人遇到过这个问题,或者知道在移动设备上单击/点击选择而不退出当前页面的方法?
谢谢,
杰夫