Skip to content

Commit

Permalink
FIX Let selenium2driver do things with alerts
Browse files Browse the repository at this point in the history
  • Loading branch information
GuySartorelli committed Dec 22, 2023
1 parent c3fa40f commit 68476cd
Showing 1 changed file with 24 additions and 8 deletions.
32 changes: 24 additions & 8 deletions src/Context/BasicContext.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
use Behat\Behat\Hook\Scope\AfterStepScope;
use Behat\Behat\Hook\Scope\BeforeScenarioScope;
use Behat\Behat\Hook\Scope\BeforeStepScope;
use Behat\Mink\Driver\Selenium2Driver;
use Behat\Mink\Element\NodeElement;
use Behat\Mink\Exception\ElementNotFoundException;
use Behat\Mink\Session;
Expand Down Expand Up @@ -562,7 +563,12 @@ public function theElementAttributeShouldBe($selector, $attribute, $value)
*/
public function iSeeTheDialogText($expected)
{
$text = $this->getExpectedAlert()->getText();
$driver = $this->getSession()->getDriver();
if ($driver instanceof Selenium2Driver) {
$text = $driver->getWebDriverSession()->getAlert_text();
} else {
$text = $this->getExpectedAlert()->getText();
}
Assert::assertStringContainsString($expected, $text);
}

Expand Down Expand Up @@ -597,12 +603,17 @@ protected function getExpectedAlert()
*/
public function iConfirmTheDialog()
{
$session = $this->getWebDriverSession();
$session->wait()->until(
WebDriverExpectedCondition::alertIsPresent(),
"Alert is expected"
);
$session->switchTo()->alert()->accept();
$driver = $this->getSession()->getDriver();
if ($driver instanceof Selenium2Driver) {
$driver->getWebDriverSession()->accept_alert();
} else {
$session = $this->getWebDriverSession();
$session->wait()->until(
WebDriverExpectedCondition::alertIsPresent(),
"Alert is expected"
);
$session->switchTo()->alert()->accept();
}
$this->handleAjaxTimeout();
}

Expand All @@ -611,7 +622,12 @@ public function iConfirmTheDialog()
*/
public function iDismissTheDialog()
{
$this->getExpectedAlert()->dismiss();
$driver = $this->getSession()->getDriver();
if ($driver instanceof Selenium2Driver) {
$driver->getWebDriverSession()->dismiss_alert();
} else {
$this->getExpectedAlert()->dismiss();
}
$this->handleAjaxTimeout();
}

Expand Down

0 comments on commit 68476cd

Please sign in to comment.