【问题标题】:Select random option from select list从选择列表中选择随机选项
【发布时间】:2015-08-27 15:12:03
【问题描述】:

如何使用页面对象从选择列表中选择随机选项? 我用:

  def select_random_member
    lstMembers = self.sltMembers_element.options.map(&:index) # getting all members from select list
    lastMember = lstMembers.last
    rnmMember = rand(0..lastMember)
    self.sltMembers_element.options[rnmMember].click
  end

我在获取每个选项时看到了弃用警告lstMembers = self.sltEndDate_element.options.map(&:index)

*** DEPRECATION WARNING
*** You are calling a method named index at D:/members/lib/pages/members_page.rb:58:in `map'.
*** This method does not exist in page-object so it is being passed to the driver.
*** This feature will be removed in the near future.
*** Please change your code to call the correct page-object method.
*** If you are using functionality that does not exist in page-object please request it be added.

【问题讨论】:

    标签: ruby watir watir-webdriver page-object-gem


    【解决方案1】:

    options 方法返回一个选项元素数组。数组有一个名为 sample 的内置方法,用于选择随机项。

    使用sample 的方法是:

    def select_random_member
      sltMembers_element.options.sample.click
    end
    

    【讨论】:

    • 这似乎是要走的路,OP。 +1
    【解决方案2】:

    尝试在lstMembers 上使用#sample

    def select_random_member
      lstMembers = self.sltMembers_element.options.map(&:index) # getting all members from select list
      self.sltEndDate_element.options[lstMembers.sample].click
    end
    

    【讨论】:

    • 不,还是一样的警告。问题出在这个字符串中:lstMembers = self.sltMembers_element.options.map(&:index) 因为页面对象中不存在map 方法。
    • 它不能是一个集合 :p 你如何使用这个 gem 获得一个页面元素的集合?如果你不能,那么选择一个随机元素会更难
    • 好的。还有其他选择随机选项的方法吗?可能是通过watir?
    • 问题在于收集 - self.sltMembers_element 返回什么?
    猜你喜欢
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多