Using BrowserStack to automate collection of ScreenShots of my pages across multiple devices.
Install PHP WebDriver
git clone https://github.com/facebook/php-webdriver.git
#!/usr/bin/php
<?php
/**
Attempts to Visit a Web-Page and Get a Screenshot?
*/
require(__DIR__ . '/php-webdriver/lib/__init__.php');
$auth = 'http://user:auth@hub.browserstack.com/wd/hub';
$page = 'http://www.discuss.io/';
$chrome_opts = array('args' => array(
'--disable-popup-blocking'
));
$caps_list = array(
// Windows XP
// array("os" => "Windows", "os_version" => "XP", "browser" => "Chrome", "browser_version" => "31.0"),
// array("os" => "Windows", "os_version" => "XP", "browser" => "Firefox", "browser_version" => "25.0"),
// array("os" => "Windows", "os_version" => "XP", "browser" => "Opera", "browser_version" => "12.16"),
// array("os" => "Windows", "os_version" => "XP", "browser" => "IE", "browser_version" => "7.0"),
// Windows 7
// array("os" => "Windows", "os_version" => "7", "browser" => "IE", "browser_version" => "11.0"),
// array("os" => "Windows", "os_version" => "7", "browser" => "Chrome", "browser_version" => "31.0"),
// array("os" => "Windows", "os_version" => "7", "browser" => "Firefox", "browser_version" => "25.0"),
// array("os" => "Windows", "os_version" => "7", "browser" => "Opera", "browser_version" => "12.16"),
// Windows 8.1
array("os" => "Windows", "os_version" => "8.1", "browser" => "IE", "browser_version" => "11.0"),
array("os" => "Windows", "os_version" => "8.1", "browser" => "Chrome", "browser_version" => "31.0"),
array("os" => "Windows", "os_version" => "8.1", "browser" => "Firefox", "browser_version" => "25.0"),
array("os" => "Windows", "os_version" => "8.1", "browser" => "Opera", "browser_version" => "12.16"),
// OS X Maverics
array("os" => "OS X", "os_version" => "Mavericks", "browser" => "Safari", "browser_version" => "7.0", ),
array("os" => "OS X", "os_version" => "Mavericks", "browser" => "Chrome", "browser_version" => "31.0", ),
array("os" => "OS X", "os_version" => "Mavericks", "browser" => "Firefox", "browser_version" => "25.0", ),
array("os" => "OS X", "os_version" => "Mavericks", "browser" => "Opera", "browser_version" => "12.15", ),
// iOS 7
array("platform" => "MAC", "device" => "iPhone 5S", "browserName" => "iPhone"),
array("platform" => "MAC", "device" => "iPad 3rd (7.0)", "browserName" => "iPad"),
// Android 4.2
array("platform" => "ANDROID", "device" => "LG Nexus 4", "browserName" => "android"),
array("platform" => "ANDROID", "device" => "Google Nexus 7", "browserName" => "android"),
);
$html = '<h1>ScreenShots</h1>';
foreach ($caps_list as $caps) {
$caps = array_merge($caps, array('browserstack.debug' => true));
$web_driver = RemoteWebDriver::create($auth, $caps);
$web_driver->get($page);
// $element = $web_driver->findElement(WebDriverBy::name("q"));
// if($element) {
// $element->sendKeys("Browserstack");
// $element->submit();
// }
// $web_driver->executeScript("return alert('SEO Sorcerer Rocks')", array());
$ret = $web_driver->executeScript("return window.width;", array());
print_r($ret);
$ret = $web_driver->executeScript("return window.height;", array());
print_r($ret);
// print $web_driver->getTitle();
$file = sprintf('%08x', crc32(serialize($caps)));
file_put_contents("/opt/dio/AT_Source/$file.png", $web_driver->takeScreenshot());
$html.= "<h2>{$caps['os']} / {$caps['os_version']} / {$caps['browser']} / {$caps['browser_version']}</h2>";
// @todo when OS is maverics, find full height, scroll step-by-step, capture and stitch together
$web_driver->quit();
}
file_put_contents($html);