public function DrupalSelenium2Driver::attachFile in Drupal 10
Same name and namespace in other branches
- 9 core/tests/Drupal/FunctionalJavascriptTests/DrupalSelenium2Driver.php \Drupal\FunctionalJavascriptTests\DrupalSelenium2Driver::attachFile()
File
- core/
tests/ Drupal/ FunctionalJavascriptTests/ DrupalSelenium2Driver.php, line 50
Class
- DrupalSelenium2Driver
- Provides a driver for Selenium testing.
Namespace
Drupal\FunctionalJavascriptTestsCode
public function attachFile($xpath, $path) {
$element = $this
->getWebDriverSession()
->element('xpath', $xpath);
if ('input' !== strtolower($element
->name()) || 'file' !== strtolower($element
->attribute('type'))) {
$message = 'Impossible to %s the element with XPath "%s" as it is not a %s input';
throw new DriverException(sprintf($message, 'attach a file on', $xpath, 'file'));
}
// Upload the file to Selenium and use the remote path. This will
// ensure that Selenium always has access to the file, even if it runs
// as a remote instance.
try {
$remotePath = $this
->uploadFileAndGetRemoteFilePath($path);
} catch (\Exception $e) {
// File could not be uploaded to remote instance. Use the local path.
$remotePath = $path;
}
$element
->postValue([
'value' => [
$remotePath,
],
]);
}