-2

I am using behat/mink/sahi. I am trying to attach file to an input type element using the xpath because i can not locate it with the normal function that behat already has. My full_path is already in the behat.yml file

   /**
     * @When I attach file
     */
    public function iAttachFile()
    {
        $page = $this->getSession()->getPage();
        $element = $page->find('xpath', "//input[@data-field-type='logo']");
        $element->attachFile('full_path');
    }
pr1nc3
  • 6,575
  • 3
  • 15
  • 29

1 Answers1

0

attachFile doesn't know to get the full_path from behat.yml alone.

Make sure you have the latest "behat/mink-selenium2-driver" or this PR https://github.com/minkphp/MinkSelenium2Driver/pull/252 to work for remote hosts.

In my case I have a path under Behat\MinkExtension: the following files_path: %paths.base%/features/bootstrap and after this copy your file in bootstrap

And for full path I use something like this:

$path = $this->getMinkParameter('files_path').DIRECTORY_SEPARATOR. $file_name;
$element->attachFile($path);

As a best practice you should keep your file in the automation project.
var_dump your path, if is correct it should work when running local, for remote you need that PR to upload file to the selenium instance.

lauda
  • 4,043
  • 2
  • 12
  • 27
  • Please provide an example of the given path if possible. – lauda Jul 24 '17 at 07:30
  • I update my composer with mink-selenium2-driver , var dump the path but still nothing uploads. The var dump gave me output "string(1) '/' " in the console but no change. – pr1nc3 Jul 24 '17 at 11:13