diff --git a/lib/behat/classes/partial_named_selector.php b/lib/behat/classes/partial_named_selector.php index 66335e9c8ef..8faa23aa687 100644 --- a/lib/behat/classes/partial_named_selector.php +++ b/lib/behat/classes/partial_named_selector.php @@ -255,7 +255,7 @@ XPATH , 'filemanager' => << <<find( 'xpath', - "//input[./@id = //label[normalize-space(.)=$filepickerelement]/@for]" . + "//input[./@id = substring-before(//p[normalize-space(.)=$filepickerelement]/@id, '_label')]" . "//ancestor::*[@data-fieldtype = 'filemanager' or @data-fieldtype = 'filepicker']", $exception ); diff --git a/lib/behat/form_field/behat_form_filemanager.php b/lib/behat/form_field/behat_form_filemanager.php index 7d709496696..1fa9ff6c4f2 100644 --- a/lib/behat/form_field/behat_form_filemanager.php +++ b/lib/behat/form_field/behat_form_filemanager.php @@ -68,7 +68,7 @@ class behat_form_filemanager extends behat_form_field { $fieldlabel = $this->get_field_locator(); // Get the name of the current directory elements. - $xpath = "//label[contains(., '" . $fieldlabel . "')]" . + $xpath = "//p[normalize-space(.)='$fieldlabel']" . "/ancestor::div[contains(concat(' ', normalize-space(@class), ' '), ' fitem ')]" . "/descendant::div[@data-fieldtype = 'filemanager']" . "/descendant::div[contains(concat(' ', normalize-space(@class), ' '), ' fp-filename ')]"; diff --git a/repository/upload/tests/behat/behat_repository_upload.php b/repository/upload/tests/behat/behat_repository_upload.php index 74d6abf2033..52fa09bbc0f 100644 --- a/repository/upload/tests/behat/behat_repository_upload.php +++ b/repository/upload/tests/behat/behat_repository_upload.php @@ -209,10 +209,8 @@ class behat_repository_upload extends behat_base { $filepickerelement = behat_context_helper::escape($filepickerelement); $filepickercontainer = $this->find( 'xpath', - "//input[./@id = //label[normalize-space(.)=$filepickerelement]/@for]" . - "//ancestor::div[contains(concat(' ', normalize-space(@class), ' '), ' felement ')] |" . - "//input[./@id = //label[normalize-space(.)=$filepickerelement]/@for]" . - "//ancestor::div[contains(concat(' ', normalize-space(@class), ' '), ' form-setting ')]", + "//input[./@id = substring-before(//p[normalize-space(.)=$filepickerelement]/@id, '_label')]" . + "//ancestor::*[@data-fieldtype = 'filemanager' or @data-fieldtype = 'filepicker']", $exception ); }