
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Best Way to Handle JavaScript Popup Using Selenium WebDriver
We can handle a JavaScript pop-up using Selenium webdriver with the help of the Alert interface. The alerts are pop-ups that shift the focus from the main webpage to the alert text appearing on the page.
By default, the webdriver has focus on the main page, to access the alert we have to explicitly switch the driver focus from the main page to the alert box. The alerts can be of two types – web based and window based. JavaScript pop-ups are the web based alerts.
The switchTo().alert() method is used to switch the driver focus to the alert. Once the driver focus is shifted, we can obtain the text of the pop-up with the help of the method switchTo().alert().getText(). Finally we shall use the switchTo().alert().accept() method to accept the alert and switchTo().alert().dismiss() method to dismiss it.
To input text inside a confirmation alert, the method switchTo().alert().sendKeys() is used. The text to be entered is passed as a parameter to this method. Also, we have to add import org.openqa.selenium.Alert statement to work with alerts.
Example
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import java.util.concurrent.TimeUnit; import org.openqa.selenium.Alert; public class JavaScriptAlert{ public static void main(String[] args) { System.setProperty("webdriver.gecko.driver", "C:\Users\ghs6kor\Desktop\Java\geckodriver.exe"); WebDriver driver = new FirefoxDriver(); //implicit wait driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS); //URL launch driver.get("https://the-internet.herokuapp.com/javascript_alerts"); // identify element WebElement a =driver.findElement(By.xpath("//button[text()='Click for JS Confirm']")); a.click(); //switch alert Alert al = driver.switchTo().alert(); //obtain text String st = al.getText(); System.out.println("Text is: " + st); //alert dismiss al.dismiss(); a.click(); //alert accept al.accept(); driver.close();} } }