Предупреждение за селен & Работа с изскачащи прозорци: Как да се справим?

Съдържание:

Anonim

В този урок ще научим как да боравим с изскачащи прозорци в Selenium и различни видове сигнали, открити в тестване на уеб приложения. Също така ще видим как да боравим с Alert в Selenium WebDriver и ще научим как приемаме и отхвърляме сигнала в зависимост от типовете сигнали.

В този урок ще научите -

  • Какво е Alert?
  • Как да се справя с Alert в Selenium WebDriver
  • Как да боравим с изскачащия прозорец на Selenium с помощта на Webdriver

Какво е Alert в селен?

Едно предупреждение в Селенът е малка кутия за съобщения, който се появява на екрана, за да даде на потребителя някаква информация или уведомление. Той уведомява потребителя с някаква конкретна информация или грешка, иска разрешение за изпълнение на определени задачи и също така предоставя предупредителни съобщения.

Ето няколко предупреждения за типовете селен:

1) Обикновено предупреждение

Простият клас за предупреждение в Selenium показва на екрана някаква информация или предупреждение.

2) Бързо предупреждение.

Това предупреждение за подкана изисква известно въвеждане от потребителя и уеб драйверът на Selenium може да въведе текста с помощта на клавиши за изпращане ("вход

... ").

3) Сигнал за потвърждение.

Този сигнал за потвърждение иска разрешение за извършване на някакъв вид операция.

Как да се справя с Alert в Selenium WebDriver

Интерфейсът за предупреждение предоставя следните няколко метода, които са широко използвани в Selenium Webdriver.

1) void dismiss () // За да кликнете върху бутона „Отказ“ на предупреждението.

driver.switchTo (). alert (). dismiss ();

2) void accept () // За да кликнете върху бутона „OK“ на предупреждението.

driver.switchTo (). alert (). accept ();

3) String getText () // За заснемане на предупредителното съобщение.

driver.switchTo (). alert (). getText (); 

4) void sendKeys (String stringToSend) // За изпращане на някои данни в полето за предупреждение.

driver.switchTo (). alert (). sendKeys ("Текст");

Можете да видите, че се показват редица методи за предупреждение, както е показано на екрана по-долу, предложен от Eclipse.

Можем лесно да превключим към предупреждение от главния прозорец, като използваме метода .switchTo () на Selenium .

Сега ние автоматизираме дадения по-долу сценарий.

В този сценарий ще използваме демонстрационния сайт на Guru99, за да илюстрираме обработката на Selenium Alert.

Стъпка 1) Стартирайте уеб браузъра и отворете сайта "http://demo.guru99.com/test/delete_customer.php"

Стъпка 2) Въведете всеки идентификатор на клиента.

Стъпка 3) След въвеждане на идентификатора на клиента, щракнете върху бутона "Изпращане".

Стъпка 4) Отхвърлете / приемете сигнала.

Обработка на предупреждение в Selenium Webdriver, използвайки горния сценарий

внос org.openqa.selenium.By;импортиране на org.openqa.selenium.WebDriver;импортиране на org.openqa.selenium.chrome.ChromeDriver;импортиране org.openqa.selenium.NoAlertPresentException;внос org.openqa.selenium.Alert;публичен клас AlertDemo {public static void main (String [] args) хвърля NoAlertPresentException, InterruptedException {System.setProperty ("webdriver.chrome.driver", "G: \\ chromedriver.exe");Драйвер за WebDriver = нов ChromeDriver ();// Обработка на съобщения за предупреждениеdriver.get ("http://demo.guru99.com/test/delete_customer.php");driver.findElement (By.name ("cusid")). sendKeys ("53920");driver.findElement (By.name ("submit")). submit ();// Превключване към AlertСигнал за предупреждение = driver.switchTo (). Alert ();// Заснемане на предупредително съобщение.String alertMessage = driver.switchTo (). Alert (). GetText ();// Показване на предупредително съобщениеSystem.out.println (alertMessage);Thread.sleep (5000);// Приемане на предупреждениеalert.accept ();}}

Изход:

Когато изпълните горния код, той стартира сайта. Опитайте се да изтриете идентификатора на клиента, като се справите с предупреждение за потвърждение, което се показва на екрана, и по този начин изтриете идентификатора на клиента от приложението.

Как да се справя с изскачащия прозорец на Selenium с помощта на Webdriver

При автоматизацията, когато имаме няколко прозореца във всяко уеб приложение, може да се наложи активността да превключва контрола между няколко прозореца от един на друг, за да завърши операцията. След приключване на операцията той трябва да се върне в главния прозорец, т.е. родителския прозорец в Selenium. Ще видим това по-нататък в статията с пример.

В уеб драйвера на Selenium има методи, чрез които можем да обработваме множество прозорци.

Driver.getWindowHandles ();

За да се справим с всички отворени прозорци чрез уеб драйвер, можем да използваме "Driver.getWindowHandles ()" и след това можем да превключваме прозорец от един прозорец в друг в уеб приложение. Типът му на връщане е Iterator .

Driver.getWindowHandle ();

Когато сайтът се отвори, трябва да обработим главния прозорец от driver.getWindowHandle () . Това ще обработи текущия прозорец, който го идентифицира еднозначно в този екземпляр на драйвера. Типът му на връщане е String.

За обработка на прозорци в Селен ще следваме стъпките по-долу:

Сега ще автоматизираме дадения по-долу сценарий, за да видим как да боравим с множество прозорци с помощта на Selenium Webdriver.

В този сценарий ще използваме демонстрационен сайт "Guru99", за да илюстрираме обработката на прозорци.

Стъпка 1) Стартирайте сайта.

Стартирайте браузъра и отворете сайта " http://demo.guru99.com/popup.php "

Стъпка 2) Кликнете върху връзката "Щракнете тук".

Когато потребителят щракне върху връзката "Щракнете тук", се отваря нов дъщерен прозорец.

Стъпка 3) Отваря се нов детски прозорец.

Отваря се нов прозорец, помолете потребителя да въведе имейл идентификатор и да изпрати страницата.

Стъпка 4) Въведете имейл адреса си и го изпратете.

Стъпка 5) Покажете идентификационните данни за достъп при изпращане на страницата.

Когато изпълните кода, ще видите, че прозорецът на детето е отворен в нов раздел.

  1. Затворете прозореца Child, в който се показват идентификационните данни.
  1. Превключете към родителския прозорец.

Работа с множество прозорци в Selenium webdriver, използвайки горния сценарий.

импортиране на java.util.Iterator;импортиране на java.util.Set;внос org.openqa.selenium.By;импортиране на org.openqa.selenium.WebDriver;импортиране на org.openqa.selenium.firefox.FirefoxDriver;публичен клас WindowHandle_Demo {public static void main (String [] args) хвърля InterruptedException {Драйвер за WebDriver = нов FirefoxDriver ();// Стартиране на сайта.driver.get ("http://demo.guru99.com/popup.php");driver.manage (). window (). maximize ();driver.findElement (By.xpath ("// * [съдържа (@ href, 'popup.php')]")). кликнете ();String MainWindow = driver.getWindowHandle ();// За обработка на всички нови отворени прозорци.Задайте  s1 = driver.getWindowHandles ();Итератор  i1 = s1.iterator ();докато (i1.hasNext ()){String ChildWindow = i1.next ();if (! MainWindow.equalsIgnoreCase (ChildWindow)){// Превключване към Child прозорецdriver.switchTo (). window (ChildWindow);driver.findElement (By.name ("emailid")).sendKeys (" Този имейл адрес е защитен от спам ботове. Трябва да имате активиран JavaScript, за да го видите.");driver.findElement (By.name ("btnLogin")). click ();// Затваряне на прозореца на детето.driver.close ();}}// Превключване към родителски прозорец, т.е. основен прозорец.driver.switchTo (). window (MainWindow);}}

Изход:

Когато изпълните горния код, той стартира сайта и при щракване върху връзката "Щракнете тук" отваря дъщерен прозорец в нов раздел. Можете да затворите детския прозорец и да преминете към родителския прозорец, след като операцията е напълно завършена. Следователно обработка на повече от един прозорец в приложението.

Работа с множество прозорци в селен

Заключение:

  • Определихме видовете сигнали и ги показахме със снимка на екрана.
  • Демонстрирано боравене с Alert с Selenium WebDriver, използвайки конкретен сценарий.
  • Обработва множество прозорци с Selenium WebDriver, използвайки определен сценарий.