सेलेनियम में जावा एप्लेट चेतावनी चेतावनी कैसे स्वीकार करें? - जावा, सेलेनियम, सेलेनियम-वेबड्राइवर, एप्लेट, अलर्ट

मेरे पास परीक्षण करने के लिए एक वेब पेज है, जिसमें एक जावाएप्लेट भी चलता है। जब मैं पेज को लॉग करता हूं तो जावा एप्लेट को लोड करने में 30 से 50 सेकंड का समय लगता है और यह जावा अहस्ताक्षरित एपलेट सिक्योरिटी अलर्ट दिखा रहा है। जब मैं अपनी सेलेनियम स्क्रिप्ट चलाता हूं, तो जब भी अलर्ट पॉपअप होता है तो निष्पादन बंद हो जाता है। जावा अलर्ट को स्वीकार करने में सक्षम नहीं हो सकता क्योंकि मुझे पता नहीं है कि यह पॉप कब जा रहा है।

So my problem here is , I was forced to wait जब तक मेरा एप्लेट लोड नहीं होता है तब तक एपलेट अलर्ट आता है, इसे स्वीकार करें और फिर मेरे चरणों को निष्पादित करें। एक श्रोता की तरह लिखने का एक तरीका है ताकि जब भी जावा सुरक्षा अलर्ट आए तो यह स्वचालित रूप से अलर्ट को स्वीकार करे और मेरी स्क्रिप्ट के निष्पादन के साथ जारी रहे ।

उत्तर:

जवाब के लिए 0 № 1

यदि मैं आपके प्रश्न को सही ढंग से समझता हूं, तो आप स्क्रीन पर अलर्ट की उपस्थिति को प्रदूषित करना चाहते हैं।

चेतावनी के लिए सही ढंग से प्रतीक्षा करने के लिए, आपको WebDriverWait को विशेष रूप से इसके लिए लागू किया गया है:

WebDriverWait wait = new WebDriverWait(driver, 5); //5 seconds wait
element.click() //trigger for alert to appear
wait.until(ExpectedConditions.alertIsPresent());

अब आप अलर्ट को संभाल सकते हैं:

Alert alert = driver.switchTo().alert();
alert.accept(); //Accepting the alert

बेशक, स्वीकार करने के बजाय आप कुछ और कर सकते हैं, के अनुसार इस

इसके अलावा, आप इस तरह से कुछ सरल चेतावनी सत्यापन को लागू कर सकते हैं:

public Boolean isAlertExistAndAccepted(WebDriver driver) {
try {
Alert alert = driver.switchTo().alert();
alert.accept();
return true;
} catch (NoAlertPresentException e) {
return false;
}
}

कुछ इस तरह की व्यवस्था करते समय:

do {

} while ( !isAlertExist() );

जवाब के लिए 0 № 2

यदि आप जानते हैं कि कहां और कब ... अलर्ट संदेश की उपस्थिति का अनुमान लगाना आसान होना चाहिए और कॉल स्वीकार करें (या जो भी सही विधि का नाम है, निश्चित नहीं है)।

अन्यथा, आपको लिखने में सक्षम होना चाहिएisAlertPresent के लिए सशर्त (फिर से मैं सटीक विधि के नाम के बारे में निश्चित नहीं हूं क्योंकि मैं java सेलेनियम की तुलना में phpUnit से अधिक परिचित हूं)। और अगर आप उपस्थित हों तो आप बर्खास्त करने की कार्रवाई कर सकते हैं यदि आप चाहें तो अलर्ट कर सकते हैं।

मैं इस महीने पहले PHP में हल कर चुका था, जब मैंसोचा कि अलर्ट हो सकता है, अपना पाठ प्राप्त करने के लिए। यदि गेटटेक्स्ट अक्षर लौटता है, तो वास्तव में एक अलर्ट मौजूद है और आपको इसे स्वीकार करने या इसे खारिज करने में सक्षम होना चाहिए।


संबंधित सवाल
सबसे लोकप्रिय