我正在测试一个噩梦般的网站,在大多数情况下,它会将所有重要的东西都放在 iframe 中。
但是,还有其他常见的情况,系统会烦人地在新选项卡中打开一个页面,但不包含在 iframe 中。
我正在尝试找出一种条件方法来检查 iframe 的存在并使用它,否则不会。
到目前为止,这是我想出的:
# The browser object...
@br = Watir::Browser.new
“frm”是我试图开始工作的条件方法......
# Just an example element definition...
def click_my_button
@br.frm.button(id: "button").click
end
我在 Watir 的 Container 模块中定义它,如下所示:
module Watir
module Container
def frm
if frame(id: "iframeportlet").exist?
frame(id: "iframeportlet")
else
# This is the part that I can't figure out.
end
end
end
end
当 iframe 存在时,它工作得很好,但毫不奇怪,当它不存在时,我会收到 NilClass 错误。
所以,我的问题是:在 else 子句中可以加入什么来使它起作用?更广泛地说,是否有更好的方法来实现这一点?正如你可以想象的那样,我真的很想避免将网站中的每个元素都定义两次。