function BrowserKitDriver::getFormField
Returns form field from XPath query.
Parameters
string $xpath:
Return value
Throws
\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.
File
-
vendor/
behat/ mink-browserkit-driver/ src/ BrowserKitDriver.php, line 592
Class
- BrowserKitDriver
- Symfony BrowserKit driver.
Namespace
Behat\Mink\DriverCode
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];
}