【问题标题】:Capybara can't find select box for Semantic-uiCapybara 找不到 Semantic-ui 的选择框
【发布时间】:2016-04-27 13:35:04
【问题描述】:

我将 capybaracapybara-webkitSemantic-ui 一起使用,但它表明下拉菜单不能开箱即用,因为<select> 元素被隐藏:

# feature_spec.rb
select 'option1', from: 'Options'

$ rspec feature_spec.rb

Capybara::ElementNotFound:
  Unable to find select box "Options"

您对此有有效的解决方案吗?

【问题讨论】:

    标签: ruby-on-rails capybara semantic-ui capybara-webkit


    【解决方案1】:

    经过两天的搜索和阅读,这篇文章是少数有用的文章之一。希望这可以帮助其他人!

    我创建了一些这样的方法,请原谅命名..我改变了它。

    def some_dropdown(id, text)
      dropdown = find(id).click
      dropdown.first('option', text: text).select_option
    end
    
    def select_form
      within 'content#id' do
        some_dropdown('#id', text)
    
        click_link_or_button 'Submit'
      end
    end
    

    我还引用了this。 也尝试等待,睡眠和可见:false

    【讨论】:

      【解决方案2】:

      你也可以这样做:

      execute_script('$("#Options").dropdown("set selected", "option1");')
      

      execute_script 允许您在测试中运行脚本。它使用语义 ui 方法从下拉列表中选择您想要的选项。

      【讨论】:

      • 欢迎来到 StackOverflow!当您发布任何代码时,您应该对其进行描述,以便不仅提问者,而且整个社区都应该能够轻松理解您的代码。
      • 谢谢!我认为该代码是不言自明的!无论如何,我编辑了它以防人们需要它。
      【解决方案3】:

      我已经创建了这个助手:

      # for Semantic-ui dropdown
      def select_from_dropdown(item_text, options)
        # find dropdown selector
        dropdown = find_field(options[:from], visible: false).first(:xpath,".//..")
        # click on dropdown
        dropdown.click
        # click on menu item
        dropdown.find(".menu .item", :text => item_text).click
      end
      
      # in spec
      select_from_dropdown 'option1', from: 'Options'
      

      希望对你有帮助:-)

      【讨论】:

        猜你喜欢
        • 2023-04-03
        • 1970-01-01
        • 2018-05-09
        • 2018-10-31
        • 2023-03-28
        • 1970-01-01
        • 2015-02-13
        • 2016-12-27
        • 1970-01-01
        相关资源
        最近更新 更多