3 namespace Zumba\Mink\Driver;
5 use Behat\Mink\Exception\DriverException;
8 * Class PageContentTrait
9 * @package Zumba\Mink\Driver
11 trait PageContentTrait {
16 public function getContent() {
17 return $this->browser->getBody();
21 * Given xpath, will try to get ALL the text, visible and not visible from such xpath
22 * @param string $xpath
24 * @throws DriverException
26 public function getText($xpath) {
27 $elements = $this->findElement($xpath, 1);
28 //allText works only with ONE element so it will be the first one and also returns new lines that we will remove
29 $text = $this->browser->allText($elements["page_id"], $elements["ids"][0]);
30 $text = trim(str_replace(array("\r", "\r\n", "\n"), ' ', $text));
31 $text = preg_replace('/ {2,}/', ' ', $text);
36 * Returns the inner html of a given xpath
37 * @param string $xpath
39 * @throws DriverException
41 public function getHtml($xpath) {
42 $elements = $this->findElement($xpath, 1);
43 //allText works only with ONE element so it will be the first one
44 return $this->browser->allHtml($elements["page_id"], $elements["ids"][0], "inner");
48 * Gets the outer html of a given xpath
49 * @param string $xpath
51 * @throws DriverException
53 public function getOuterHtml($xpath) {
54 $elements = $this->findElement($xpath, 1);
55 //allText works only with ONE element so it will be the first one
56 return $this->browser->allHtml($elements["page_id"], $elements["ids"][0], "outer");
60 * Returns the binary representation of the current page we are in
61 * @throws DriverException
64 public function getScreenshot() {
65 $options = array("full" => true, "selector" => null);
66 $b64ScreenShot = $this->browser->renderBase64("JPEG", $options);
67 if (($binaryScreenShot = base64_decode($b64ScreenShot, true)) === false) {
68 throw new DriverException("There was a problem while doing the screenshot of the current page");
70 return $binaryScreenShot;