1

XPATH が定期的に変更されるサイトの XPATH のライブラリがあります。私がこれを書いたのは、すべての機能ファイルを調べて送信する XPATH を変更する代わりに、.rb ライブラリ内にある変数の値を変更するだけで済むからです。

これらの定数を .feature ファイルを介してステップ定義に渡すことはできますか?

.feature 機能ファイルの例:

Scenario: I want to test a button
    When I go to url "blah"
    And I click on the XPATH: XPATH_CONSTANT_VARIABLE

.rb ステップ定義の例:

When /^I click on the XPATH: {I DON'T KNOW WHAT TO PUT HERE}$/ do |path|
    @driver.find_element(:xpath, path).click
end

XPATH .rb ライブラリの例:

XPATH_CONSTANT_VARIABLE = "//*[@id="blahblah"]/div[1]/div/div[2]/div/div[1]/div/div[5]/div/div/div/div[2]"
4

1 に答える 1

3

あなたのシナリオは非常に重要です。それらをより宣言的にし、シナリオで XPathes を使用 (または参照) しないことをお勧めします。読んだ:


シナリオをそのまま残したい場合は、次を使用できます。

When /^I click on the XPATH: \w+$/ do |constant|
  xpath = Kernel.const_get constant
  @driver.find_element(:xpath, xpath).click
end

しかし、あなたがしたようにすべての定数をグローバル空間に置くことは、私には醜いようです。それらを YAML ファイルに入れる方が良いかもしれません。

于 2013-01-28T20:13:48.140 に答える