我正在查看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'错误是否有人遇到此问题,或者知道如何在不退出当前页面的情况下点击/点按移动设备上的选项?
谢谢,
杰夫
答案 0 :(得分:0)
看起来解决方案非常简单。 不要试图从弹出列表中单击元素,而只需使用发送键。
el = @driver.find_element(:id, "activityType")
el.send_keys("Call")
谢谢,
杰夫