0

在 ruby​​ 中使用 Capybara 并使用 Site Prism 创建页面对象。Http 元素如下所示:

<section class='service-widget'  id='service_id>
   <div class='title'> ... </div>
   <div class='content> ... </div>
</section>

我为此部分创建了类:

class ServicesSection < SitePrism::Section
end

然后将部分添加到页面对象:

class ServicesPage < SitePrism::Page
    sections :services, ServicesSection, 'section[id^="service_"]'
end

这个元素可以折叠,唯一表明它的状态(如果它是否折叠)是它的类名,它从

<section class='service-widget'  id='service_id>

<section class='service-widget is-closed'  id='service_id>

如何找出该元素是否折叠(关闭)?

4

2 回答 2

2

在 ServiceSection 里面我定义了方法:

def closed?
   root_element[:class].include? 'is-closed'
end

如果“已关闭”是类的一部分,则返回 true。

于 2017-11-02T13:23:33.407 回答
2

您的自我回答root_element[:class].include? 'is-closed'可能适用于您的情况,但并不可靠,因为它也会匹配具有 . 类的元素is-closed-tomorrow。更强大的解决方案如下:

root_element.matches_css?('.is-closed', wait: false)
于 2017-11-02T17:07:26.150 回答