我使用PageObject和watir。我需要在框架中找到文本字段。
HTML:
<iframe id="iframeorderTab1" width="100%" height="100%" src="/GenePortal_zt40/SCC.Requisitions/Requisition/Requisition?tabId=orderTab1&reqNum=&mode=Edit&templateId=&patientMRN=">
...
<input id="lastName-inputEl" class="x-form-field x-form-text " type="text" autocomplete="off" style="background-image: none; background-color: rgb(240, 224, 163); text-transform: uppercase; width: 100%;" maxlength="35" name="lastName-inputEl" size="1" role="textbox" data-errorqtip="">
红宝石:
class ReqEntryPage
include PageObject
in_frame(:id=>"iframeorderTab1") do |frame|
text_field(:lastName,:name=>"lastName-inputEl", :frame=>frame)
end
public
def fill_in_requisition_and_release(browser)
Watir::Wait.until do
if self.lastName? then
puts "====================!!!FOUND!!!====================="
end
end
end
end
系统找不到lastName元素。 我做错了什么?
答案 0 :(得分:1)
我假设您使用的是最新版本的Page-Object gem。 Watir-Webdriver API最近发生了一个变化,它使用单独的方法来定位帧与iframe(在使用相同的方法之前,两者都用于定位两者)。 Page-Object gem API为updated to be consistent。
这意味着您的访问者目前正在寻找:
<frame id="iframeorderTab1">
<input name="lastName-inputEl">
</frame>
与你的html不匹配,因为你有一个iframe。要在iframe中找到,您需要使用in_iframe
代替:
in_iframe(:id=>"iframeorderTab1") do |frame|
text_field(:lastName,:name=>"lastName-inputEl", :frame=>frame)
end