Compare commits
	
		
			No commits in common. "91c93f1fe8489ef524652e40b7189816eb27ec9e" and "23d0b7ae9e23e743ca1c567ab68abb5f4c347d41" have entirely different histories.
		
	
	
		
			91c93f1fe8
			...
			23d0b7ae9e
		
	
		
					 4 changed files with 11 additions and 31 deletions
				
			
		| 
						 | 
				
			
			@ -16,5 +16,5 @@ if ($_SERVER['argc'] < 2) {
 | 
			
		|||
}
 | 
			
		||||
$serverHost = '127.0.0.1';
 | 
			
		||||
$serverPort = 4444;
 | 
			
		||||
$main = new ScriptedBrowser\Main($serverHost, $serverPort, 6);
 | 
			
		||||
$main = new ScriptedBrowser\Main($serverHost, $serverPort, 6, $_SERVER['argc'] > 2 ? $_SERVER['argv'][2] : null);
 | 
			
		||||
$main->run($_SERVER['argv'][1]);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -110,7 +110,7 @@ function mousemoverel($main, $control, $options)
 | 
			
		|||
 */
 | 
			
		||||
function sleep($main, $control, $options) : bool
 | 
			
		||||
{
 | 
			
		||||
    usleep(floatval($options['parameter']) * 1000000);
 | 
			
		||||
    usleep(intval($options['parameter']) * 1000000);
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -121,6 +121,7 @@ class Control
 | 
			
		|||
        curl_close($ch);
 | 
			
		||||
        $respJson = json_decode($resp, true);
 | 
			
		||||
        if (!is_array($respJson)) {
 | 
			
		||||
            echo "resp: '$resp'\n";
 | 
			
		||||
            return [];
 | 
			
		||||
        }
 | 
			
		||||
        if (array_key_exists('value', $respJson)) {
 | 
			
		||||
| 
						 | 
				
			
			@ -170,8 +171,7 @@ class Control
 | 
			
		|||
     */
 | 
			
		||||
    public function getURL() : string
 | 
			
		||||
    {
 | 
			
		||||
        $url = $this->execute('GET', 'url');
 | 
			
		||||
        return (!is_array($url)) ? $url : '';
 | 
			
		||||
        return $this->execute('GET', 'url');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
| 
						 | 
				
			
			@ -222,21 +222,16 @@ class Control
 | 
			
		|||
 | 
			
		||||
        $openSession = true;
 | 
			
		||||
        if ($session !== null) {
 | 
			
		||||
            // todo validate session
 | 
			
		||||
            $openSession = false;
 | 
			
		||||
            $this->session = $session;
 | 
			
		||||
            // get current URL to see if the session is valid
 | 
			
		||||
            $url = $this->getURL();
 | 
			
		||||
            if ($url !== '') {
 | 
			
		||||
                $openSession = false;
 | 
			
		||||
            } else {
 | 
			
		||||
                $this->session = '';
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if ($openSession) {
 | 
			
		||||
            $sessionData = $this->execute('POST', "session", '{"capabilities" :  {"alwaysMatch": {"acceptInsecureCerts": true, "moz:firefoxOptions":{"prefs":{"browser.display.os-zoom-behavior": 0,"layout.css.prefers-color-scheme.content-override": 1}}}, "firstMatch": [{"browserName": "firefox"}]}}');
 | 
			
		||||
            $sessionData = $this->execute('POST', "session", '{"capabilities" :  {"alwaysMatch": {"moz:firefoxOptions":{"prefs":{"browser.display.os-zoom-behavior": 0,"layout.css.prefers-color-scheme.content-override": 1}}}, "firstMatch": [{"browserName": "firefox"}]}}');
 | 
			
		||||
            $this->session = $sessionData['sessionId'];
 | 
			
		||||
            echo 'Session: '. $this->session. "\n";
 | 
			
		||||
        }
 | 
			
		||||
        return $this->session;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -105,8 +105,9 @@ class Main
 | 
			
		|||
     * @param string $serverHost server host name
 | 
			
		||||
     * @param int $serverPort server port
 | 
			
		||||
     * @param int $display VNC display id
 | 
			
		||||
     * @param string $session existing session id from geckodriver
 | 
			
		||||
     */
 | 
			
		||||
    public function __construct($serverHost, $serverPort, $display = 6)
 | 
			
		||||
    public function __construct($serverHost, $serverPort, $display = 6, $session = null)
 | 
			
		||||
    {
 | 
			
		||||
        require 'commands/base.php';
 | 
			
		||||
        $this->display = $display;
 | 
			
		||||
| 
						 | 
				
			
			@ -116,21 +117,7 @@ class Main
 | 
			
		|||
        // open xdotool
 | 
			
		||||
        $this->control->openInput();
 | 
			
		||||
        // open/connect to browser
 | 
			
		||||
        $sessionFile = @fopen('.session', 'r');
 | 
			
		||||
        $session = null;
 | 
			
		||||
        if ($sessionFile !== false) {
 | 
			
		||||
            $session = trim(fgets($sessionFile));
 | 
			
		||||
            fclose($sessionFile);
 | 
			
		||||
            if ($session == '') {
 | 
			
		||||
                $session = null;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        $newSession = $this->control->openGeckoDriver($session);
 | 
			
		||||
        if ($newSession !== $session) {
 | 
			
		||||
            $sessionFile = fopen('.session', 'w');
 | 
			
		||||
            fwrite($sessionFile, $newSession."\n");
 | 
			
		||||
            fclose($sessionFile);
 | 
			
		||||
        }
 | 
			
		||||
        $this->control->openGeckoDriver($session);
 | 
			
		||||
        $this->control->mousemove(959, 499);
 | 
			
		||||
        $windowpos = $this->control->fullscreen();
 | 
			
		||||
        $this->control->mousemove(960, 500);
 | 
			
		||||
| 
						 | 
				
			
			@ -205,8 +192,6 @@ class Main
 | 
			
		|||
        $this->control->mousemove(960, 500);
 | 
			
		||||
 | 
			
		||||
        $steps = file_get_contents($instructions);
 | 
			
		||||
        $steps = preg_replace('/[\r\n]/', '', $steps);
 | 
			
		||||
        $steps = preg_replace('!/\*.*\*/!', '', $steps);
 | 
			
		||||
        $plans = json_decode($steps, true);
 | 
			
		||||
        if ($plans === null) {
 | 
			
		||||
            echo "error reading config\n";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue