1*04fd306cSNickeau<?php 2*04fd306cSNickeau 3*04fd306cSNickeaunamespace Facebook\WebDriver; 4*04fd306cSNickeau 5*04fd306cSNickeauuse Facebook\WebDriver\Remote\DriverCommand; 6*04fd306cSNickeauuse Facebook\WebDriver\Remote\ExecuteMethod; 7*04fd306cSNickeau 8*04fd306cSNickeau/** 9*04fd306cSNickeau * An abstraction allowing the driver to manipulate the javascript alerts 10*04fd306cSNickeau */ 11*04fd306cSNickeauclass WebDriverAlert 12*04fd306cSNickeau{ 13*04fd306cSNickeau /** 14*04fd306cSNickeau * @var ExecuteMethod 15*04fd306cSNickeau */ 16*04fd306cSNickeau protected $executor; 17*04fd306cSNickeau 18*04fd306cSNickeau public function __construct(ExecuteMethod $executor) 19*04fd306cSNickeau { 20*04fd306cSNickeau $this->executor = $executor; 21*04fd306cSNickeau } 22*04fd306cSNickeau 23*04fd306cSNickeau /** 24*04fd306cSNickeau * Accept alert 25*04fd306cSNickeau * 26*04fd306cSNickeau * @return WebDriverAlert The instance. 27*04fd306cSNickeau */ 28*04fd306cSNickeau public function accept() 29*04fd306cSNickeau { 30*04fd306cSNickeau $this->executor->execute(DriverCommand::ACCEPT_ALERT); 31*04fd306cSNickeau 32*04fd306cSNickeau return $this; 33*04fd306cSNickeau } 34*04fd306cSNickeau 35*04fd306cSNickeau /** 36*04fd306cSNickeau * Dismiss alert 37*04fd306cSNickeau * 38*04fd306cSNickeau * @return WebDriverAlert The instance. 39*04fd306cSNickeau */ 40*04fd306cSNickeau public function dismiss() 41*04fd306cSNickeau { 42*04fd306cSNickeau $this->executor->execute(DriverCommand::DISMISS_ALERT); 43*04fd306cSNickeau 44*04fd306cSNickeau return $this; 45*04fd306cSNickeau } 46*04fd306cSNickeau 47*04fd306cSNickeau /** 48*04fd306cSNickeau * Get alert text 49*04fd306cSNickeau * 50*04fd306cSNickeau * @return string 51*04fd306cSNickeau */ 52*04fd306cSNickeau public function getText() 53*04fd306cSNickeau { 54*04fd306cSNickeau return $this->executor->execute(DriverCommand::GET_ALERT_TEXT); 55*04fd306cSNickeau } 56*04fd306cSNickeau 57*04fd306cSNickeau /** 58*04fd306cSNickeau * Send keystrokes to javascript prompt() dialog 59*04fd306cSNickeau * 60*04fd306cSNickeau * @param string $value 61*04fd306cSNickeau * @return WebDriverAlert 62*04fd306cSNickeau */ 63*04fd306cSNickeau public function sendKeys($value) 64*04fd306cSNickeau { 65*04fd306cSNickeau $this->executor->execute( 66*04fd306cSNickeau DriverCommand::SET_ALERT_VALUE, 67*04fd306cSNickeau ['text' => $value] 68*04fd306cSNickeau ); 69*04fd306cSNickeau 70*04fd306cSNickeau return $this; 71*04fd306cSNickeau } 72*04fd306cSNickeau} 73