我有一个具有动态URL的页面。让我们称它为查看post页面。post 1的URL为site.com/post/1,post 2的URL为site.com/post/2。
这就是我现在所做的,以检查我是否在正确的页面上。
这一页:
class ViewPostPage
include PageObject
def self.url
"site.com/post/"
end
end黄瓜步骤:
on(ViewPostPage) do |page|
@browser.url.should == "#{page.class.url}#{@id}"
end有更好的办法吗?您是否会费心检查整个URL,或者只检查site.com/post/部分?
我正在使用最新的页对象 gem (0.6.6)。
更新
更大的问题是直接访问具有动态URL的页面。
这一页:
class ViewPostPage
include PageObject
def self.url
"site.com/post/"
end
page_url url
end黄瓜步骤:
visit ViewPostPage我现在要做的是将Cucumber步骤改为:
@browser.goto "#{ViewPostPage.url}#{@id}"如果有一种方法可以让页面知道它的ID,那就太好了,但是我还没有想出如何去做。
发布于 2012-05-09 19:33:24
您可以使用current_url方法获取页面的url。在上面的测试中,您是否试图确定您是否在正确的页面上?如果是这样的话,我可能建议使用两种“预期”方法中的一种-- expected_title和expected_element。
如果您需要动态导航到url,那么page_url方法很可能不是您的选择。相反,您可以尝试在页面中添加一个执行如下操作的方法:
class ViewPostPage
include PageObject
URL = "site.com/post/"
expected_title "The expected title"
def navigate_to_post_with_id(id)
navigate_to "#{URL}/#{id}"
end
end在你的测试中
on_page(ViewPostPage) do |page|
page.navigate_to_post_with_id @id
page.should have_expected_title
end如果这有帮助的话请告诉我。
发布于 2013-10-04 09:25:11
有一个选项可以检查中的动态URL。
使用以下代码:
类ViewPostPage 包括PageObject expected_url“预期的URL”,去初始化has_expected_url?结束 结束
它会帮你的
https://stackoverflow.com/questions/10518196
复制相似问题