-
Notifications
You must be signed in to change notification settings - Fork 203
Fix HttpCallListener when Mink driver is not started yet #292
base: master
Are you sure you want to change the base?
Fix HttpCallListener when Mink driver is not started yet #292
Conversation
@sanpii Could you take a look to the PR please ? ;) |
This resolves amongst other things issues with behatch also see: Behatch/contexts#284 Behatch/contexts#292
This PR looks good to me 😃 |
b00cce0
to
f359c04
Compare
@benjamin-vauchel-webrivage FYI: I am using an adopted script for using related chrome driver version in my repo. #!/usr/bin/env bash
# ensure that symfony/panther's chromeDriver matches installed chromium version
# this needs chromium and symfony/panther (in vendor folder) to be installed
cd /srv/api/vendor/symfony/panther/chromedriver-bin
chromiumVersion=$(chromium --product-version 2>&1;);
chromiumBrowserVersion=$(chromium-browser --product-version 2>&1;);
googleChromeVersion=$(google-chrome --product-version 2>&1;);
if [[ ${chromiumVersion} == *"."*"."* ]]; then
chromiumVersion="$( cut -d '.' -f 1 <<< "$chromiumVersion" )";
echo "Found chromium version ${chromiumVersion}";
chromeDriverVersion="_${chromiumVersion}"
elif [[ ${chromiumBrowserVersion} == *"."*"."* ]]; then
chromiumBrowserVersion="$( cut -d '.' -f 1 <<< "$chromiumBrowserVersion" )";
echo "Found chromium-browser version ${chromiumBrowserVersion}";
chromeDriverVersion="_${chromiumBrowserVersion}"
elif [[ ${googleChromeVersion} == *"."*"."* ]]; then
googleChromeVersion="$( cut -d '.' -f 1 <<< "$googleChromeVersion" )";
echo "Found google-chrome version ${googleChromeVersion}";
chromeDriverVersion="_${googleChromeVersion}"
else
"No google-chrome, chromium-browser or chromium found. Using latest release..."
chromeDriverVersion=""
fi
chromeDriver=$(curl -s https://chromedriver.storage.googleapis.com/LATEST_RELEASE${chromeDriverVersion});
echo "Downloading ChromeDriver version ${chromeDriver} from https://chromedriver.storage.googleapis.com/LATEST_RELEASE${chromeDriverVersion} ..."
declare -a binaries=("chromedriver_linux64" "chromedriver_mac64" "chromedriver_win32")
for name in "${binaries[@]}"
do
curl -s https://chromedriver.storage.googleapis.com/${chromeDriver}/${name}.zip -O
unzip -q -o ${name}.zip
rm ${name}.zip
if [[ -f "chromedriver" ]]; then
mv chromedriver ${name}
fi
done
curl -s https://chromedriver.storage.googleapis.com/${chromeDriver}/notes.txt -O
echo "Done." Maybe this helps. |
788c4db
to
afad962
Compare
@robertfausk It seems Chrome latest stable version is not compatible anymore with Trusty release (https://travis-ci.community/t/you-can-no-longer-install-chrome-stable-on-trusty-machines/8521). I got an error "dpkg: error processing archive /tmp/google-chrome-stable_current_amd64.deb (--install):". I'll try with Xenial and Bionic releases ... |
afad962
to
20c51f7
Compare
20c51f7
to
a6e0890
Compare
Hi, thanks for the PR. I was struggling on the same issue, and ended up with a similar solution. @sanpii could you please accept and merge the PR? This is quite a simple fix for quite a blocking issue. Thanks 🙂 |
Hi @sanpii , did you consider merging this PR yet? |
Up @sanpii ? That's a shame that we can't use this great bundle for such a little issue 🙁 |
Fix the following error when BehatchExtension is used with Selenium2 Mink driver :
[11-Sep-2020 12:14:21 Europe/Paris] PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: Call to a member function source() on null in /app/vendor/behat/mink-selenium2-driver/src/Selenium2Driver.php:487 Stack trace: #0 /app/vendor/behat/mink/src/Element/DocumentElement.php(37): Behat\Mink\Driver\Selenium2Driver->getContent() #1 /app/vendor/behatch/contexts/src/HttpCall/HttpCallListener.php(55): Behat\Mink\Element\DocumentElement->getContent() #2 /app/vendor/symfony/symfony/src/Symfony/Component/EventDispatcher/EventDispatcher.php(184): Behatch\HttpCall\HttpCallListener->afterStep(Object(Behat\Behat\EventDispatcher\Event\AfterStepTested), 'tester.step_tes...', Object(Behat\Testwork\EventDispatcher\TestworkEventDispatcher)) #3 /app/vendor/behat/behat/src/Behat/Testwork/EventDispatcher/TestworkEventDispatcher.php(39): Symfony\Component\EventDispatcher\EventDispatcher->doDispatch(Array, 'tester.step_tes...', Object(Behat\Behat\EventDispatcher\Event\AfterStepTested)) #4 /app/vendor/behat/behat/src/Behat/Behat/EventDispatcher/Tester/EventD in /app/vendor/behat/mink-selenium2-driver/src/Selenium2Driver.php on line 487
Behat\Mink\Driver\Selenium2Driver->getContent()
is called whereas the driver hasn't started yet.