gpt4 book ai didi

ruby - Watir,寻找更优雅的 HTML 元素检查解决方案

转载 作者:太空宇宙 更新时间:2023-11-03 18:30:43 26 4
gpt4 key购买 nike

我正在寻找一种更优雅的解决方案来检查一系列 HTML 元素是否在浏览器中可见。

我想创建一个包含元素类型和 ID 的 CSV 文件,将其读入数组并使用它来检查元素是否存在于浏览器中。

所以 CSV 文件/数组看起来像这样,

"select","srch-op-select"
"text_field","srch-filter"
"button","srch-button"
"image","srch-showhide-icon"
"div","srch-showhide"

然后我想我可以使用 case 语句来进行检查,就像这样,

        myElements.each do |row|
type = row[0]
id = row[1]
case type
when "button" : assert(browser.button(:id,id).exists?)
when "checkbox" : assert(browser.checkbox(:id,id).exists?)
when "div" : assert(browser.div(:id,id).exists?)
when "image" : assert(browser.image(:id,id).exists?)
when "label" : assert(browser.label(:id,id).exists?)
when "link" : assert(browser.link(:id,id).exists?)
when "radio" : assert(browser.radio(:id,id).exists?)
when "select" : assert(browser.select_list(:id,id).exists?)
when "span" : assert(browser.span(:id,id).exists?)
when "table" : assert(browser.table(:id,id).exists?)
else $log.debug "---Unsupported element type "+type
end
end

显然,如果您想涵盖所有受支持的元素类型或考虑选择 HTML 元素的不同方法,那么这个 case 语句会变得庞大而笨拙。

谁能提出更优雅、更灵活的解决方案?

最佳答案

将您的案例陈述替换为:

assert(browser.send(type.to_sym, :id, id).exists?)

关于ruby - Watir,寻找更优雅的 HTML 元素检查解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4758928/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com