मैं एक ऐसी विधि बनाने की कोशिश कर रहा हूं जो एक ही समय में दो तत्वों को लौटाए। यह मेरा कोड है:

 this.Wait.Until(ExpectedConditions.ElementExists(By.Id("mm_date_8")));
 this.Wait.Until(ExpectedConditions.ElementExists(By.Id("dd_date_8")));

 return this.Driver.FindElements(By.Id("mm_date_8"), By.Id("dd_date_8"));

लेकिन मुझे नहीं पता कि इसे कैसे ठीक किया जाए...क्या आप कृपया मेरी मदद कर सकते हैं। पहले ही, आपका बहुत धन्यवाद!!!

0
Daniela Todorova 9 अप्रैल 2017, 12:40

1 उत्तर

सबसे बढ़िया उत्तर

मुझे यकीन नहीं है कि निम्नलिखित वाक्यविन्यास सही है या नहीं।

return this.Driver.FindElements(By.Id("mm_date_8"), By.Id("dd_date_8"));

इसके बजाय आप जो करने का प्रयास कर सकते हैं वह निम्नलिखित है।

List<IWebElement> elements = new List<IWebElement>();
AddElementsToList(elements, this.Driver.FindElements(By.Id("mm_date_8"));
AddElementsToList(elements, this.Driver.FindElements(By.Id("dd_date_8"));
// now in your calling method you can easily index list.
return elements;

public void AddElementsToList(List<IWebElement> elementList, IEnumberable<IWebElement> elementEnumerable)
{
    if (elementEnumerable != null && elementEnumerable.Any())
    {
        elementList.AddRange(elementEnumerable);
    }
}

कृपया ध्यान दें, मैं मान रहा हूं कि FindElements का आउटपुट IEnumerable है। लेकिन अगर इसका अन्य प्रकार का संग्रह है, तो विचार अभी भी वही है।

यदि आपको पता होना चाहिए कि कौन सा तत्व किस आईडी से संबंधित है, तो आप सूची बनाने के बजाय एक बना सकते हैं

Dictionary<string, IWebElement>

जहां स्ट्रिंग आपकी आईडीकी होगी।

1
touchofevil 9 अप्रैल 2017, 13:00