//img
または//i
などの要素がalt
属性を持つかどうかをテストしています。Selenium Webdriverを使用してWebElement属性が存在するかどうかをテストする方法
属性がまったく存在しないときを検出する方法が見つかりません。
ここにWebElementがあります。 alt属性のないimgだけです。
<img class="gsc-branding-img" src="https://www.google.com/cse/static/images/1x/googlelogo_grey_46x15dp.png" srcset="https://www.google.com/cse/static/images/2x/googlelogo_grey_46x15dp.png 2x"/>
ここに私のコードは、altの存在を判断しようとしています。私はそれがすべて必要ではないことを知っている、私はすべてを試していた。
WebElement we == driver.findElement(By.xpath("(//img)[1]"));
String altAttribute = we.getAttribute("alt");
if(altAttribute == null || altAttribute =="" || altAttribute == " ")
{
//attribute not found
}
それは、空の文字列を返すように私ドンので、しかし、私のif
文はリターンをキャッチしていない「beforeAfter」
System.out.println("before"+altAttribute+"After");
次のコードに戻り、例えば...らしいです何をすべきかわかりません。次のように他のいくつかのユニークなxpath
を通じてWebElement
を検索する
試してみてください:
WebElement we = driver.findElement(By.xpath("(//img[@class='gsc-branding-img']"));
または
WebElement we = driver.findElement(By.xpath("//img[contains(@src,'googlelogo_grey_46x15dp.png')]"));
私にしてみましょう。ここ
ありがとうございました。それは私の例ではうまくいくでしょう。しかし、実際には、リストリスト allImages = driver.findElements(By.xpath( "// img"));のリストを反復処理しています。これらはすべてalt属性を持っているかどうかを確認する必要があります。それぞれ異なるxpathでそれぞれを分離する。私は私の例でもっと具体的にすべきだった。 –
dsidler