Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. BrowserKitDriver.php

function BrowserKitDriver::getFormField

Returns form field from XPath query.

Parameters

string $xpath:

Return value

FormField

Throws

DriverException

\InvalidArgumentException when the field does not exist in the BrowserKit form

7 calls to BrowserKitDriver::getFormField()
BrowserKitDriver::attachFile in vendor/behat/mink-browserkit-driver/src/BrowserKitDriver.php
Attaches file path to file field located by its XPath query.
BrowserKitDriver::getCheckboxField in vendor/behat/mink-browserkit-driver/src/BrowserKitDriver.php
Returns the checkbox field from xpath query, ensuring it is valid.
BrowserKitDriver::getValue in vendor/behat/mink-browserkit-driver/src/BrowserKitDriver.php
Returns element's value by its XPath query.
BrowserKitDriver::isChecked in vendor/behat/mink-browserkit-driver/src/BrowserKitDriver.php
Checks whether checkbox or radio button located by its XPath query is checked.
BrowserKitDriver::isSelected in vendor/behat/mink-browserkit-driver/src/BrowserKitDriver.php
Checks whether select option, located by its XPath query, is selected.

... See full list

File

vendor/behat/mink-browserkit-driver/src/BrowserKitDriver.php, line 592

Class

BrowserKitDriver
Symfony BrowserKit driver.

Namespace

Behat\Mink\Driver

Code

protected function getFormField(string $xpath) {
    $fieldNode = $this->getCrawlerNode($this->getFilteredCrawler($xpath));
    $fieldType = $fieldNode->getAttribute('type');
    if (\in_array($fieldType, [
        'button',
        'submit',
        'image',
    ], true)) {
        throw new DriverException(sprintf('Cannot access a form field of type "%s".', $fieldType));
    }
    $fieldName = str_replace('[]', '', $fieldNode->getAttribute('name'));
    $formNode = $this->getFormNode($fieldNode);
    $formId = $this->getFormNodeId($formNode);
    if (!isset($this->forms[$formId])) {
        $this->forms[$formId] = new Form($formNode, $this->getCurrentUrl());
    }
    if (is_array($this->forms[$formId][$fieldName])) {
        $positionField = $this->forms[$formId][$fieldName][$this->getFieldPosition($fieldNode)];
        \assert($positionField instanceof FormField);
        return $positionField;
    }
    return $this->forms[$formId][$fieldName];
}
RSS feed
Powered by Drupal