Размер изображения равен 0, когда снимок экрана делается с помощью WebDriver Facebook. (!) Предупреждение: base64_decode () ожидает, что параметр 1 будет строкой, задан массив - PullRequest
0 голосов
/ 22 декабря 2019

При создании снимка экрана с помощью WebDriver Facebook в цикле PHP7 размер изображения создается как 0.


Сообщение об ошибке

(!) Предупреждение: base64_decode () ожидает, что параметр 1 будет строкой, массив представлен в /var/www/★★★★★/composer/vendor/facebook/webdriver/lib/Remote/RemoteWebDriver.php в строке 363


Пробный код

require_once('/var/www/★★★★★/composer/vendor/autoload.php');
$driverPath = '/usr/local/bin/chromedriver';
putenv("webdriver.chrome.driver=" . $driverPath);
$options = new Facebook\WebDriver\Chrome\ChromeOptions();
$userAgent ='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36';
$options->addArguments(['--headless','--disable-gpu','--user-agent=' . $userAgent]);
$capabilities = Facebook\WebDriver\Remote\DesiredCapabilities::chrome();
$capabilities->setCapability(Facebook\WebDriver\Chrome\ChromeOptions::CAPABILITY, $options);
$driver = Facebook\WebDriver\Chrome\ChromeDriver::start($capabilities);
foreach ($data as $key => $val):
  $directory_path = '/var/www/★★★★★';
  $filename = date("Y-m-d-H-i-s");
  $fname = $filename.'.jpg';
  $url = $val['target_url'];
  if ($val['target_url']&&(0 !== strpos($val['target_url'], 'https://web.archive.org/'))) {
    $driver->get($url);
    $driver->manage()->window()->maximize();
    $contentWidth = $driver->executeScript("return Math.max(document.body.scrollWidth, document.body.offsetWidth, document.documentElement.clientWidth, document.documentElement.scrollWidth, document.documentElement.offsetWidth);");
    $contentHeight = $driver->executeScript("return Math.max(document.body.scrollHeight, document.body.offsetHeight, document.documentElement.clientHeight, document.documentElement.scrollHeight, document.documentElement.offsetHeight);");
    $dimension_content = new Facebook\WebDriver\WebDriverDimension($contentWidth, $contentHeight);
    $driver->manage()->window()->setSize($dimension_content);
    $filePath = $directory_path."/".$fname;
    if(!file_exists($directory_path)){
      if(mkdir($directory_path, 0777)){
          chmod($directory_path, 0777);
      }else{
      }
    }
    try
    {
      $driver->takeScreenshot($filePath);
    } catch (\Throwable $e) {
    }
  }
  $driver->close();
endforeach;

среда PHP7 CentOS7 Facebook WebDriver Безголовый Google Chrome

...