gpt4 book ai didi

ruby - Cheezy 的页面对象,获取页面内定义的所有 text_fields

转载 作者:数据小太阳 更新时间:2023-10-29 08:31:43 25 4
gpt4 key购买 nike

考虑这个简单的页面对象:

require 'watir-webdriver'
require 'page-object'

class SomePage
include PageObject

text_field :first_name, :name => "fname"
text_field :last_name, :name => "lname"
text_field :birth_date, :name => "birthday"
button :submit, :type => "submit"
end

browser = Watir::Browser.new

page = SomePage.new(browser)

有没有办法遍历所有文本字段(或任何元素)以访问它们的“标识符”(即:用户名、:密码或:出生)?

类似于:

page.text_fields.each do |text_field|
puts text_field.identifier.inspect
end

=> :first_name
=> :last_name
=> :birth_date

我只是想看看我能不能把这个:

page.first_name = @user.first_name
page.last_name = @user.last_name
etc...

进入这个:

page.text_fields.each do |text_field|

attribute = text_field.attribute

text_field = @user[attribute]

end

有人知道我的意思吗?

最佳答案

已经提供的答案肯定会满足您的需求,但我想添加一个额外的选项,该选项使用页面对象 gem 中内置的功能。

在page_populator.rb 中调用populate_page_with()。原来是这样用的。

从具有元素名称的散列开始(我使用加载到散列中的 CSV 文件),如在页面对象上定义的那样,在键中。散列值包含您希望填充每个元素的值。

form_data = {first_name: @user.first_name, last_name: @user.last_name, birth_date: @user.birth_date}

@page.populate_page_with form_data

就是这样。 populate_page 方法将在页面上找到正确的元素,并使用您在源哈希中设置的任何值填充它们。这适用于复选框、单选按钮和文本。

这是 Cheezy 为我们提供的一种非常好的节省时间的方法!

谢谢奶酪!

关于ruby - Cheezy 的页面对象,获取页面内定义的所有 text_fields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27031650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com