مدیریت هشدارها بدون استفاده از switchTo().alert()

تصور کنید که هنگام پر کردن یک برنامه، به طور تصادفی اطلاعات خاصی را از دست داده اید. بدون هشدار یا پنجره بازشو، چگونه می توانید این را بدانید؟ این مقاله به طور عمیق در مورد اینکه هشدار سلنیوم چیست و چگونه با آن مقابله می کند، توضیح می دهد. بیایید نگاهی دقیقتر به موضوعات زیر بیندازیم تا درک عملی از مدیریت هشدارها و پنجرههای بازشو در سلنیوم به دست آوریم.
مقدمه ای بر هشدارها در سلنیوم
در سلنیوم، هشدار یک پیام یا جعبه اعلان است که اطلاعات خاصی را به کاربر اطلاع میدهد یا برای ادامه یک عمل خاص مجوز درخواست میکند. همچنین می توان از آن به عنوان یک هشدار استفاده کرد.
سه نوع هشدار در سلنیوم وجود دارد که به شرح زیر است:
– هشدار ساده
این هشدار برای اطلاع رسانی یک پیام هشدار ساده با دکمه “OK” به عنوان تصویری که در زیر پیوست کردم استفاده می شود.
(منبع:https://www.scientecheasy.com/)
– هشدار سریع
این هشدار از کاربر می خواهد که اطلاعات مورد نیاز را برای تکمیل کار وارد کند.
(منبع:https://www.scientecheasy.com/)
– هشدار تایید
این هشدار اساساً برای تأیید برخی از کارها استفاده می شود.
(منبع:https://www.scientecheasy.com/)
روشهای مدیریت هشدارها در سلنیوم
-
Void dismiss(): این روش زمانی استفاده می شود که دکمه “لغو” در کادر هشدار کلیک شود.
driver.switchTo().alert().dismiss();
-
Void accept(): این روش برای کلیک بر روی دکمه “OK” هشدار استفاده می شود.
driver.switchTo().alert().accept();
-
String getText(): این روش برای گرفتن پیام هشدار استفاده می شود.
driver.switchTo().alert().getText();
-
Void sendKeys(String stringToSend): این روش برای ارسال اطلاعات به جعبه هشدار استفاده می شود.
driver.switchTo().alert().sendKeys("Text");
قطعه کد زیر روشهای مختلف مدیریت هشدارها را با استفاده از Selenium WebDriver در جاوا نشان میدهد. برای انجام توضیح کد از این سایت دمو استفاده کردم
در روش اول از متد switch.To استفاده کردم. در اینجا من پیام هشدار را می پذیرم.
در روش دوم شیء را از کلاس انتظار ایجاد می کنم و منتظر می مانم تا هشدار ظاهر شود و سپس آن را می پذیرم.
در روش سوم با استفاده از JavascriptExecutor تابع “window.alert” را لغو کنید تا هشدارها را با تنظیم آن بر روی یک تابع خالی متوقف کنید.
@Test
public void alert(){
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("https://testautomationpractice.blogspot.com/");
WebElement alertBtn = driver.findElement(By.xpath("//button[@id='alertBtn']"));
alertBtn.click();
//Using switchTo
Alert alert = driver.switchTo().alert();
alert.accept();
//Using Explicit wait
WebDriverWait mywait = new WebDriverWait(driver, Duration.ofSeconds(10));
Alert alert1 = mywait.until(ExpectedConditions.alertIsPresent());
alert1.accept();
//Using JavascriptExecutor
JavascriptExecutor js = (JavascriptExecutor) driver;
try{
js.executeScript("window.alert=function{};");
}catch(Exception e){
}