C#でSeleniumを使用して、特定のクラスを持つすべての要素の属性値のリストを取得します

Aug 22 2020

Seleniumを使用して、特定のクラスのすべての要素のタイトル属性のリストを取得したいと思います。私はこのコードを試しました:

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

ただし、常に最初の要素のタイトルしか取得しません。

どうすればそれができるかについて何かアイデアはありますか?foreachループでやろうと思ったのですが、うまくいく条件が思いつかない…

回答

1 Jeethendra Aug 22 2020 at 06:15

クラス名が「Class」のすべての要素から「title」属性の値をフェッチする必要があると仮定します。WebDriverのFindElementsメソッドを使用して、クラス名が「Class」のすべての要素を取得できます。すべての要素のリストから、属性(タイトル)の値を取得できます。また、クラス名が「Class」で空の「title」属性を持つすべての要素を削除するwhere句を追加しました。

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