属性を持つ要素を見つけようとしています。Selenium では、Id、tagName、Xpath、その他すべての定義済みメソッドを使用して要素を見つけることができます。ただし、属性名と値を入力として指定して、WebElement を返すメソッドを記述しようとしています。
List<WebElement> elements = webDriver.findElements(By.tagName("Attribute Name"));
for(WebElement element : elements){
if(element.getText().equals("Value of Particular Attribute")){
return element;
}
else{
return null;
}
}
XPath がオプションではないと仮定すると、これを行うための他のより良い方法はありますか?
ベストアンサー1
このタスクは CSS で簡単に実行できます。
式は次のとおりです。
element[attribute='attribute-value']
もしそうなら、
<a href="mysite.com"></a>
以下の方法で見つけることができます:
By.cssSelector("a[href='mysite.com']");
これは、可能な任意の属性を使用して機能します。
このページには、効果的な CSS セレクターを作成し、その属性を一致させる方法に関する優れた情報が記載されています。http://ddavison.io/css/2014/02/18/effective-css-selectors.html