protected function takeSnapshot(AbstractTestCase $test): void
    {
        if (!$test->wd instanceof RemoteWebDriver) {
            $test->appendTestLog('[WARN] WebDriver instance not found, cannot take snapshot.');

            return;
        }

        $savePath = ConfigProvider::getInstance()->logsDir . DIRECTORY_SEPARATOR;
        $testIdentifier = $this->assembleTestIdentifier($test);

        ob_start();
        $outputBufferClosed = false;

        try {
            $currentUrl = $test->wd->getCurrentURL();
            // Save PNG screenshot
            $screenshotPath = $savePath . $testIdentifier . '.png';
            $test->wd->takeScreenshot($screenshotPath);
            // Save HTML snapshot of page
            $htmlPath = $savePath . $testIdentifier . '.html';
            file_put_contents($htmlPath, $test->wd->getPageSource());

            $bufferedOutput = ob_get_clean();
            $outputBufferClosed = true;
            $test->appendFormattedTestLog($bufferedOutput);

            $test->appendTestLog('');
            $test->appendTestLog('[WARN] Test failed on page "%s", taking page snapshots:', $currentUrl);
            $test->appendTestLog('Screenshot: "%s"', $this->getSnapshotUrl($screenshotPath));
            $test->appendTestLog('HTML snapshot: "%s"', $this->getSnapshotUrl($htmlPath));
            $test->appendTestLog('');
        } catch (WebDriverException $e) {
            $test->appendTestLog('[WARN] Error taking page snapshot, perhaps browser is not accessible?');

            return;
        } finally {
            if (!$outputBufferClosed) {
                $test->appendFormattedTestLog(ob_get_clean());
            }
        }
    }
protected function takeSnapshot(AbstractTestCase $test): void
    {
        if (!$test->wd instanceof RemoteWebDriver) {
            $test->appendTestLog('[WARN] WebDriver instance not found, cannot take snapshot.');

            return;
        }

        $savePath = ConfigProvider::getInstance()->logsDir . DIRECTORY_SEPARATOR;
        $testIdentifier = $this->assembleTestIdentifier($test);

        ob_start();
        $outputBufferClosed = false;

        try {
            $currentUrl = $test->wd->getCurrentURL();
            // Save PNG screenshot
            $screenshotPath = $savePath . $testIdentifier . '.png';
            $test->wd->takeScreenshot($screenshotPath);
            // Save HTML snapshot of page
            $htmlPath = $savePath . $testIdentifier . '.html';
            file_put_contents($htmlPath, $test->wd->getPageSource());

            $bufferedOutput = ob_get_clean();
            $outputBufferClosed = true;
            $test->appendFormattedTestLog($bufferedOutput);

            $test->appendTestLog('');
            $test->appendTestLog('[WARN] Test failed on page "%s", taking page snapshots:', $currentUrl);
            $test->appendTestLog('Screenshot: "%s"', $this->getSnapshotUrl($screenshotPath));
            $test->appendTestLog('HTML snapshot: "%s"', $this->getSnapshotUrl($htmlPath));
            $test->appendTestLog('');
        } catch (WebDriverException $e) {
            $test->appendTestLog('[WARN] Error taking page snapshot, perhaps browser is not accessible?');

            return;
        } finally {
            if (!$outputBufferClosed) {
                $test->appendFormattedTestLog(ob_get_clean());
            }
        }
    }
protected function takeSnapshot ( AbstractTestCase $ test ) : void { if ( ! $ test -> wd instanceof RemoteWebDriver ) { $ test -> appendTestLog ( '[WARN] WebDriver instance not found, cannot take snapshot.' ) ; return ; } $ savePath = ConfigProvider :: getInstance ( ) -> logsDir . DIRECTORY_SEPARATOR ; $ testIdentifier = $ this -> assembleTestIdentifier ( $ test ) ; ob_start ( ) ; $ outputBufferClosed = false ; try { $ currentUrl = $ test -> wd -> getCurrentURL ( ) ; // Save PNG screenshot $ screenshotPath = $ savePath . $ testIdentifier . '.png' ; $ test -> wd -> takeScreenshot ( $ screenshotPath ) ; // Save HTML snapshot of page $ htmlPath = $ savePath . $ testIdentifier . '.html' ; file_put_contents ( $ htmlPath , $ test -> wd -> getPageSource ( ) ) ; $ bufferedOutput = ob_get_clean ( ) ; $ outputBufferClosed = true ; $ test -> appendFormattedTestLog ( $ bufferedOutput ) ; $ test -> appendTestLog ( '' ) ; $ test -> appendTestLog ( '[WARN] Test failed on page "%s", taking page snapshots:' , $ currentUrl ) ; $ test -> appendTestLog ( 'Screenshot: "%s"' , $ this -> getSnapshotUrl ( $ screenshotPath ) ) ; $ test -> appendTestLog ( 'HTML snapshot: "%s"' , $ this -> getSnapshotUrl ( $ htmlPath ) ) ; $ test -> appendTestLog ( '' ) ; } catch ( WebDriverException $ e ) { $ test -> appendTestLog ( '[WARN] Error taking page snapshot, perhaps browser is not accessible?' ) ; return ; } finally { if ( ! $ outputBufferClosed ) { $ test -> appendFormattedTestLog ( ob_get_clean ( ) ) ; } } }
Take screenshot and HTML snapshot of the page and save it.
Take screenshot and HTML snapshot of the page and save it .