前提・実現したいこと
Behatのデフォルトで使用できるスクリプト「I check "~"」で検知できる対象にClass属性も追加したいです。
発生している問題・エラーメッセージ
WordPressサイトにて記事の自動投稿を試みたところ、画像選択ができない状況になりました。
調べてみると、その画像を選択するには「I check "~"」というコマンドが必要なのですが、このcheckが検知する"~"の対象が「id, name, lavel, value」にしか反応しないとのことでした。
メディアライブラリを開いた状態だと特定の画像だと認識できる属性がClassしかなく、これをcheckでも検知できるようにしたいです。
発生しているエラーコード
Form field with id|name|label|value "sample" not found. (Behat\Mink\Exception\ElementNotFoundException)
該当のソースコード
yml
1default: 2 suites: 3 default: 4 paths: ['%paths.base%/features/search-text/TEST'] 5 contexts: 6 - FeatureContext 7 - VCCW\Behat\Mink\WordPressExtension\Context\WordPressContext 8 - Behat\MinkExtension\Context\MinkContext 9 - FeatureContextMink: 10 parameters: 11 screenshot_dir: '_out/server' 12 - FeatureMinkContextMink 13 extensions: 14 VCCW\Behat\Mink\WordPressExtension: 15 roles: 16 administrator: 17 username: admin 18 password: 19 Behat\MinkExtension: 20 base_url: https://sample.com/ 21 default_session: default 22 sessions: 23 default: 24 selenium2: 25 wd_host: http://127.0.0.1:4444/wd/hub 26 goutte: 27 goutte: ~
feature
1Feature: Mink Features 2Scenario: Login and new post test. 3 When I am on "/" 4 Given the screen size is 1440x900 5 #ログイン画面へ遷移 6 When I am on "/wp-login.php" 7 Then print current URL 8 9 #ログイン情報を記載 10 Then I fill in "user_login" with "user" 11 And I fill in "user_pass" with "password" 12 13 #ログインボタンをクリック 14 Then I wait for 5 seconds 15 And I press "ログイン" 16 17 #5秒待つ 18 And I wait for 5 seconds 19 20 #ダッシュボードメニューに入れているか確認 21 When I am on "/wp-admin/" 22 Then print current URL 23 24 #新規投稿に情報を記載 25 When I am on "/wp-admin/post-new.php" 26 And print current URL 27 28 #画面が表示されるまで5秒待機 29 And I wait for 5 seconds 30 31 #メインビジュアル画像を選択 32 Then I follow "画像を追加する" 33 And I wait for 10 seconds 34 And I check "class_sample"
試したこと
ソースコード内の指定してるらしき箇所
Behat\MinkExtension\Context\MinkContext.php にて、
PHP
1 /** 2 * Checks checkbox with specified id|name|label|value 3 * Example: When I check "Pearl Necklace" 4 * Example: And I check "Pearl Necklace" 5 * 6 * @When /^(?:|I )check "(?P<option>(?:[^"]|\")*)"$/ 7 */ 8 public function checkOption($option) 9 { 10 $option = $this->fixStepArgument($option); 11 $this->getSession()->getPage()->checkField($option); 12 }
あなたの回答
tips
プレビュー