Метод используется для переключения Selenium фреймворка на последнюю открытую вкладку в браузере
->switchToLastOpenedTab()
Общая структура метода ->switchToLastOpenedTab()
public function switchToLastOpenedTab() {
$handles = $this->webDriver->getWindowHandles(); //Получаем массив с заголовками всех открытых вкладок браузера в данный момент
$this->webDriver->switchTo()->window(end($handles)); //Переключаем фреймворк на вкладку с последним значением из массива(последняя вкладка)
}
Метод используется для обновления страницы
->refreshPage()
Общая структура метода ->refreshPage()
public function refreshPage() {
$this->webDriver->navigate()->refresh(); //действие обновления
}
в случае необходимости можно добавить методы с действиями:
->forward() //Имитация браузерной кнопки "Вперед"
->back() //Имитация браузерной кнопки "Назад"
Методы выполняют клик по объекту, инициируют открытие этого объекта на новой вкладке и перекидывают фреймворк selenium на новую вкладку
->clickElementWithXpathAndOpenInNewTab($xpath)
->clickElementWithIDAndOpenInNewTab($id)
Общая структура метода ->clickElementWithLocatorAndOpenInNewTab($Locator)
public function clickElementWithLocatorAndOpenInNewTab($id) {
$this->webDriver->findElement(WebDriverBy::Locator($Locator))->getLocationOnScreenOnceScrolledIntoView(); //Находит элемент на странице и скроллит страницу до него, в случае если он вне зоны видимости.
$this->webDriver->findElement(WebDriverBy::Locator($Locator))->sendKeys(array(WebDriverKeys::CONTROL, "\xEE\x80\x87")); //Посылает на этот элемент сочетание клавиш Ctrl+Enter, таким образом ссылка под объектом открывается в новой вкладке
$this->waitLoader(); //Стандартный метод ожидания
$this->switchToLastOpenedTab(); //Универсальный метод, который перекидывает Selenium на последнюю возможную вкладку
}