diff --git a/src/Client.php b/src/Client.php index 179d8744..eaedc222 100644 --- a/src/Client.php +++ b/src/Client.php @@ -283,7 +283,7 @@ protected function createCrawler(): PantherCrawler $this->start(); $elements = $this->webDriver->findElements(WebDriverBy::cssSelector('html')); - return new PantherCrawler($elements, $this->webDriver, $this->webDriver->getCurrentURL()); + return new PantherCrawler($elements, $this, $this->webDriver->getCurrentURL()); } protected function doRequest($request) diff --git a/tests/DomCrawler/CrawlerTest.php b/tests/DomCrawler/CrawlerTest.php index 164878ab..3ed141ef 100644 --- a/tests/DomCrawler/CrawlerTest.php +++ b/tests/DomCrawler/CrawlerTest.php @@ -338,4 +338,15 @@ public function testDoNotNormalizeText(): void self::createPantherClient()->request('GET', self::$baseUri.'/normalize.html')->filter('#normalize')->text(null, false); } + + public function testCrawlerStillWorksAfterClientDestruction(): void + { + $client = Client::createChromeClient(); + self::startWebServer(); + + $crawler = $client->request('GET', self::$baseUri.'/basic.html'); + unset($client); + + $this->assertStringContainsString('A basic page', $crawler->html()); + } }