Ottieni un elenco di valori degli attributi di tutti gli elementi con una classe specifica usando Selenium in C#

Aug 22 2020

Usando Selenium, mi piacerebbe ottenere un elenco di attributi del titolo su tutti gli elementi di una classe specifica. Ho provato questo codice:

var link = webDriver.FindElement(By.ClassName("class")).GetAttribute("title");

Tuttavia, ottengo sempre solo il titolo del primo elemento .

Qualche idea su come posso farlo? Ho pensato di farlo con foreachloop, ma non riesco a pensare a una condizione che funzioni...

Risposte

1 Jeethendra Aug 22 2020 at 06:15

Supponendo che sia necessario recuperare il valore dell'attributo "title" da tutti gli elementi con il nome di classe "Class". È possibile utilizzare il metodo FindElements di WebDriver per ottenere tutti gli elementi con il nome della classe "Classe". Dall'elenco di tutti gli elementi è possibile recuperare il valore dell'attributo (titolo). Ho anche aggiunto una clausola where per eliminare tutti gli elementi che hanno un nome di classe "Class" e hanno un attributo "title" vuoto.

    var alltitles = webDriver
            .FindElements(By.ClassName("Class"))
            .Where(x => !string.IsNullOrEmpty(x.GetAttribute("title")))
            .Select(x => x.GetAttribute("title"))
            .ToList();