3

動的なURLのページがあります。それをビュー投稿ページと呼びましょう。投稿1のURLはで、投稿site.com/post/12の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

私が今していることは、キュウリのステップを次のように変更することです。

@browser.goto "#{ViewPostPage.url}#{@id}"

ページがIDを知る方法があればいいのですが、その方法はまだわかりません。

4

3 に答える 3

5

current_urlメソッドを使用してページのURLを取得できます。上記のテストで、正しいページにいるかどうかを判断しようとしていますか?その場合は、expected_titleとexpected_elementの2つの「expected」メソッドのいずれかを使用することをお勧めします。

動的に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

これが役立つかどうか教えてください。

于 2012-05-09T19:33:24.870 に答える
1

ページオブジェクトgemの動的URLをチェックするオプションがあります。

以下のコードを使用してください。

クラスViewPostPage

  include PageObject

      expected_url  "The expected URL"

  def initialize

     has_expected_url?

   end

終わり

それはあなたを助けます

于 2013-10-04T09:25:11.713 に答える
0

私の知る限り、#page_urlページオブジェクトの初期化とともに対応するページを開くためのものです。正しいページを表示していることを確認するには、メソッドを使用してみてください#expected_title

また、多分それはあなたのために役立つでしょう。シンボルがに渡されると#page_url、対応するメソッドが呼び出されるため、これを使用することをお勧めします。私はそれを試していませんが、ここにあなたのためのいくつかのリンクがあります。

于 2012-05-09T14:47:59.140 に答える