【问题标题】:Check if section in Site Prism has class of specific type检查 Site Prism 中的部分是否具有特定类型的类
【发布时间】:2017-11-02 11:16:24
【问题描述】:

在 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>

如何判断该元素是否折叠(关闭)?

【问题讨论】:

    标签: ruby selenium capybara site-prism


    【解决方案1】:

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

    root_element.matches_css?('.is-closed', wait: false)
    

    【讨论】:

      【解决方案2】:

      在ServiceSection里面我定义了方法:

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

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

      【讨论】:

      • 感谢您指出 root_element - SitePrism README 中没有;)
      猜你喜欢
      • 2023-02-16
      • 2012-11-04
      • 2011-10-06
      • 2020-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-13
      • 1970-01-01
      相关资源
      最近更新 更多