检查 Site Prism 中的部分是否有 class 特定类型
Check if section in Site Prism has class of specific type
在 ruby 中使用 Capybara 并使用 Site Prism 创建页面对象。
Http 元素如下所示:
<section class='service-widget' id='service_id>
<div class='title'> ... </div>
<div class='content> ... </div>
</section>
我为这个部分创建了 class:
class ServicesSection < SitePrism::Section
end
然后向页面对象添加部分:
class ServicesPage < SitePrism::Page
sections :services, ServicesSection, 'section[id^="service_"]'
end
此元素可以折叠,唯一指示其状态(是否折叠)的是它的 class 名称,它是从
更改而来的
<section class='service-widget' id='service_id>
到
<section class='service-widget is-closed' id='service_id>
如何判断这个元素是否折叠(关闭)?
在 ServiceSection 中我定义了方法:
def closed?
root_element[:class].include? 'is-closed'
end
如果 'is-closed' 是 class 的一部分,则此 returns 为真。
您的自我回答 root_element[:class].include? 'is-closed'
可能会很好地满足您的情况,但不够稳健,因为它还会匹配 class 为 is-closed-tomorrow
的元素。更强大的解决方案如下:
root_element.matches_css?('.is-closed', wait: false)
在 ruby 中使用 Capybara 并使用 Site Prism 创建页面对象。 Http 元素如下所示:
<section class='service-widget' id='service_id>
<div class='title'> ... </div>
<div class='content> ... </div>
</section>
我为这个部分创建了 class:
class ServicesSection < SitePrism::Section
end
然后向页面对象添加部分:
class ServicesPage < SitePrism::Page
sections :services, ServicesSection, 'section[id^="service_"]'
end
此元素可以折叠,唯一指示其状态(是否折叠)的是它的 class 名称,它是从
更改而来的<section class='service-widget' id='service_id>
到
<section class='service-widget is-closed' id='service_id>
如何判断这个元素是否折叠(关闭)?
在 ServiceSection 中我定义了方法:
def closed?
root_element[:class].include? 'is-closed'
end
如果 'is-closed' 是 class 的一部分,则此 returns 为真。
您的自我回答 root_element[:class].include? 'is-closed'
可能会很好地满足您的情况,但不够稳健,因为它还会匹配 class 为 is-closed-tomorrow
的元素。更强大的解决方案如下:
root_element.matches_css?('.is-closed', wait: false)