Нажмите на вкладку с href, взяв текст вместо xpath для тестирования - PullRequest
0 голосов
/ 14 февраля 2019

Это мой код в файле FeatureContext.

public function iClickOnTheText2($arg1)
    {
        $session = $this->getSession();
        $element = $session->getPage()->find('xpath',$session->getSelectorsHandler()->selectorToXpath('xpath', $arg1));
        if (null == $element) {
            throw new InvalidArgumentException(sprintf('Cannot find text: "%s"', $arg1));
        }

        $element->click();
    }

это мой файл behat.yml

default:
  suites:
    default:
      path: %paths.base%/features/bootstrap
      contexts: 
        - FeatureContext
  extensions:
    Behat\MinkExtension:
      base_url: http://somedevwebsite.ca
      sessions:
        default:
          goutte: ~

Моя главная цель - щелкнуть текст, который отображается на странице в виде параметра вкладки, чтобы я мог открытьвкладка.Я пытаюсь взять текст, чтобы я мог нажать на текст.Любой другой способ сделать это также будет оценен, но я стараюсь не использовать xpath, так как мне придется копировать много xpaths.но попытка найти xpath для определенного текста и использовать его для клика - это нормально.просто дайте мне знать, что с этим не так, поскольку я получаю ошибку, когда моя функция содержит шаг When I click on the text "Members" Это ошибка, которую я получаю

When I click on the text "Members"                 # FeatureContext::iClickOnTheText2()
      Cannot find text: "Members" (InvalidArgumentException)

Спасибо

1 Ответ

0 голосов
/ 18 февраля 2019

Метод find () может использовать несколько различных механизмов выбора, таких как xpath, но также по идентификатору HTML, имени элемента, текстовому контенту, селектору CSS и т. Д.

Существует также рядярлыки для метода find (), такие как findLink (), которые упрощают общие случаи использования, такие как поиск ссылки по имени.

В вашем примере вы можете заменить xpath следующим:

$element = $session->getPage()->findLink($arg1);

Это будет работать до тех пор, пока $ arg1 является html-идентификатором, заголовком или текстовым содержимым ссылки, которая в вашем примере должна работать с вкладкой «Членство».

Вы можете узнать больше оМетод find (), селекторы и ярлыки в разделе справочника Mink на страницах обхода: http://mink.behat.org/en/latest/guides/traversing-pages.html

Для более продвинутого использования расширение Drupal Behat предоставляет ряд-блокировки для Drupal, Behat и Drush.Он также включает в себя общие утверждения Behat, такие как нажатие ссылкиВ этом случае с расширением Drupal Behat вы можете использовать: When I follow "Membership"

...