2

ページ オブジェクト ファイル内:

class ThisPage
  include PageObject

次のようなオブジェクトを確立できます。

div(:user_dialog, :class => 'ud_dialog')

ただし、Web サイトのドメインでは、:class => 'ud_dialog'さまざまなワークフローでそのポップアップを表示するウィンドウが多数あります。

次のようにbinding.pryのオブジェクトにアクセスできます。

on(ThisPage).div_elements(:text => 'Are you sure you want to do this action?').first.parent.html

ページファイルでこのようなウィンドウを確立するにはどうすればよいですか?

つまり、次のような構文があります。

div(:user_dialog, parent(:text => 'Are you sure you want to do this action?'))
4

1 に答える 1

2

親要素の検索などの複雑なロケーターの場合、ブロックを使用して要素を取得できます。

ページ オブジェクトで div を次のように定義した場合:

div(:user_dialog){
  div_elements(:text => 'Are you sure you want to do this action?').first.parent
}

次に、ページで次のことができます。

on(ThisPage).user_dialog_element.html

最初に一致する div が必要なため、次のように単純化できることに注意してください。

div(:user_dialog){
  div_element(:text => 'Are you sure you want to do this action?').parent
}

複数のロケーターを使用して、より直接的にすることも可能です (html によって異なります)。ud_dialog クラスを持ち、指定されたテキストを含む div を見つけることができます (他のテキストが存在する可能性があるため、部分的に一致します)。

div(:user_dialog, :class => 'ud_dialog', 
  :text => /Are you sure you want to do this action?/)
于 2014-01-03T01:53:37.353 に答える