2011-11-04 14 views
5

के साथ खाली हैं, मैं सत्यापित करना चाहता हूं कि सभी इनपुट टेक्स्ट फ़ील्ड सेलेनियम आईडीई/वेबड्राइवर के साथ खाली हैं। मान लीजिए कि कोई ऐसी विधि है जो सभी HTML इनपुट तत्वों को विशेषता "टेक्स्ट" या "टेक्स्टरेरा" के साथ वापस कर सकती है, तो मैं उन सभी पर फिर से सक्रिय हो सकता हूं और जांच सकता हूं कि टेक्स्ट संदर्भ खाली है या नहीं।सत्यापित करें कि सभी टेक्स्ट इनपुट फ़ील्ड सेलेनियम

लेकिन मुझे ऐसी विधि नहीं मिल रही है। मैं यह और कैसे कर सकता हूं?

धन्यवाद

उत्तर

1

आपने कोशिश की थी।

driver.findElements(By) 

यह आपको आपके द्वारा निर्दिष्ट लोकेटर का उपयोग करके पृष्ठ पर उपलब्ध सभी उपलब्धियों की एक सूची देगा।

2

यहां मैं यह कैसे करता हूं। मैं कुछ मामलों में टेक्स्ट और टेक्स्टरी और पासवर्ड के सभी इनपुट को पकड़ता हूं और उन तत्वों को IWebElements की सूची में संग्रहीत करता हूं। फिर मैं सूची के माध्यम से पुन: प्रयास कर सकता हूं और जो कुछ भी चाहता हूं उसे सत्यापित कर सकता हूं।

private List<IWebElement> GetTextFields(IWebDriver driver) 
{ 

List<IWebElement> textFields; 

try{ 
    textFields.AddRange(driver.FindElements(By.CssSelector("input[type='text']").ToList()); 
} 
catch { 
    //throw exception or log exception 
} 

try { 
    textFields.AddRange(driver.FindElements(By.TagName("textarea").ToList()); 
} 
catch { 
    //throw exception or log exception 
} 

textFields.RemoveRange(i => !i.Displayed); //removes all hidden fields 

return textFields 
} 

यहां बताया गया है कि आप उस सूची के साथ कोई टेक्स्ट कैसे सत्यापित कर सकते हैं।

foreach(IWebElement element in textFields) 
{ 
if(element.text != "") 
{ 
    //log error or throw exception 
} 
} 
3

ध्यान दें कि .text इनपुट फ़ील्ड पर काम नहीं करेगा और आपको मान विशेषता प्राप्त करनी होगी।

bool areAllFieldsClear() 
{ 
    var myFields = driver.FindElements(By.Xpath("//input")); 
    foreach(var field in myFields) 
    { 
     if(field.GetAttribute("value") != "") { 
      return false; //field.Clear(); maybe? 
    } 
    return true; 
} 
+0

खेल के देर से होने के लिए खेद है। इस पर कुछ और खोज रहे थे। – Highstead

+0

मुझे यह बदल गया जब ** ** ** इस तरह की स्थिति 'if (field.getAttribute ("value")। IsEmpty()) '। '! = शून्य 'या'! = "" शर्तें मेरे लिए काम नहीं कर रही थीं। – user123

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