2016-08-07 3 views
5

enter image description hereसेलेनियम में HTML5 इनपुट फ़ील्ड त्रुटि संदेश से टेक्स्ट कैसे प्राप्त करें?

  1. ईमेल फ़ील्ड में अमान्य डेटा देने पर यह एक एचटीएमएल 5 चेतावनी संदेश के लिए संकेत देता है।
  2. फ़ायरबग इस त्रुटि संदेश का निरीक्षण करने की अनुमति नहीं देता है - (कृपया एक ईमेल पता दर्ज करें) दो मामलों में ए। फायरबग के साथ निरीक्षण करते समय यह गायब हो रहा है।
    बी। त्रुटि संदेश के शीर्ष पर राइट क्लिक करें DOM संरचना में तत्व का निरीक्षण करने के लिए काम नहीं करता है।

उत्तर

8

सेलेनियम एपीआई सीधे एक आवश्यक फ़ील्ड का समर्थन नहीं करता है। हालांकि, आप आसानी से राज्य और जावास्क्रिप्ट (जावा) के एक टुकड़े के साथ संदेश प्राप्त कर सकते हैं:

JavascriptExecutor js = (JavascriptExecutor)driver; 

WebElement field = driver.findElement(By.name("email")); 
Boolean is_valid = (Boolean)js.executeScript("return arguments[0].checkValidity();", field); 
String message = (String)js.executeScript("return arguments[0].validationMessage;", field); 

ध्यान दें कि यह भी getAttribute उपयोग करने के लिए validationMessage प्राप्त करना संभव है, भले ही यह एक संपत्ति है:

String message = driver.findElement(By.name("email")).getAttribute("validationMessage"); 
+0

धन्यवाद @Florent, इसका काम कर ठीक –

0

आपको इस तरह से सभी html5 आवश्यक फ़ील्ड सत्यापन प्राप्त होता है।

स्ट्रिंग त्रुटि मैसेज = driver.findElement (By.id ("ईमेल"))। GetAttribute ("validationMessage");

संबंधित मुद्दे