"page_url" 在 WATIR 中,当它的一部分在 运行 时间发生变化时
"page_url" in WATIR when part of it is changing on run time
我正在使用页面对象开发 WATIR。这里我们需要在.rb
示例
中制作页面文件
order_page.rb
此页面的 URL 是 https://www.test-xyz.com/order/123123 此页面的最后一位数字始终更改。
现在如何为此页面文件创建页面对象以便我可以使用:
on(OrderPage).continue_shopping
您不必在使用页面对象 gem 时使用页面 url。仅当您必须直接导航到该页面时才相关。如果您已经在页面上,那么您可以直接执行您的方法。
如果您确实需要导航到该页面,并且直到运行时才知道 url,您可以定义一个方法来获取您不知道的 url 的一部分直到运行时并导航到页面。
def navigate_to_order_page(order_number)
@browser.goto("https://www.test-xyz.com/order/#{order_number}")
end
然后当你想转到页面时调用那个方法就可以了。
仅当使用 PageFactory visit
方法时才需要 page_url
访问器方法。使用on
方法时不使用。
鉴于您只想调用 on
方法,只需从页面对象中删除 page_url
访问器:
require 'watir-webdriver'
require 'page-object'
include PageObject::PageFactory
class OrderPage
include PageObject
link(:continue_shopping, :text => 'Continue Shopping')
end
@browser = Watir::Browser.new :chrome
@browser.goto('path\to\page\test.htm')
on(OrderPage).continue_shopping
如果您确实想要指定 page_url
以便您可以 visit
它,您可以指定由 ERB 评估的动态 URL。例如,您可以将页面对象定义为:
class OrderPage
include PageObject
page_url "https://www.test-xyz.com/order/<%=params[:id]%>"
link(:continue_shopping, :text => 'Continue Shopping')
end
有了这个页面对象,您仍然可以像以前一样调用 on
方法:
on(OrderPage).continue_shopping
这也使您能够在知道 URL:
的动态部分时直接访问该页面
visit OrderPage, :using_params => {:id => '123123'} do |page|
page.continue_shopping
end
在我的博客 post 上还有一些 details/tricks 用于指定动态 URL,“Creating page objects with a dynamic page_url”。
我正在使用页面对象开发 WATIR。这里我们需要在.rb
示例
order_page.rb
此页面的 URL 是 https://www.test-xyz.com/order/123123 此页面的最后一位数字始终更改。
现在如何为此页面文件创建页面对象以便我可以使用:
on(OrderPage).continue_shopping
您不必在使用页面对象 gem 时使用页面 url。仅当您必须直接导航到该页面时才相关。如果您已经在页面上,那么您可以直接执行您的方法。
如果您确实需要导航到该页面,并且直到运行时才知道 url,您可以定义一个方法来获取您不知道的 url 的一部分直到运行时并导航到页面。
def navigate_to_order_page(order_number)
@browser.goto("https://www.test-xyz.com/order/#{order_number}")
end
然后当你想转到页面时调用那个方法就可以了。
仅当使用 PageFactory visit
方法时才需要 page_url
访问器方法。使用on
方法时不使用。
鉴于您只想调用 on
方法,只需从页面对象中删除 page_url
访问器:
require 'watir-webdriver'
require 'page-object'
include PageObject::PageFactory
class OrderPage
include PageObject
link(:continue_shopping, :text => 'Continue Shopping')
end
@browser = Watir::Browser.new :chrome
@browser.goto('path\to\page\test.htm')
on(OrderPage).continue_shopping
如果您确实想要指定 page_url
以便您可以 visit
它,您可以指定由 ERB 评估的动态 URL。例如,您可以将页面对象定义为:
class OrderPage
include PageObject
page_url "https://www.test-xyz.com/order/<%=params[:id]%>"
link(:continue_shopping, :text => 'Continue Shopping')
end
有了这个页面对象,您仍然可以像以前一样调用 on
方法:
on(OrderPage).continue_shopping
这也使您能够在知道 URL:
的动态部分时直接访问该页面visit OrderPage, :using_params => {:id => '123123'} do |page|
page.continue_shopping
end
在我的博客 post 上还有一些 details/tricks 用于指定动态 URL,“Creating page objects with a dynamic page_url”。