1

https://www.parcelhero.com/en-gb/courier-services/carriers/dhlの次の html コードでは、getattribute("style") は null 値をフェッチします。なんで?

<div class="dvPageShare" style="position: relative; top: -50px;"> 

使用されるコードは次のとおりです。

driver.get("https://www.parcelhero.com/en-gb/courier-services/carriers/dhl");
    List <WebElement>SocialLink = driver.findElements(By.tagName("div"));
        for (WebElement social : SocialLink)
 {
if( social.getAttribute("class")!=null && social.getAttribute("class").equals("dvPageShare"))
                {
System.out.println("Present");System.out.println(social.getAttribute("style"));
}

            }
4

2 に答える 2

1

alecxe は正しいアプローチを使用しています。私はそれを少し異なる方法でコーディングします。一致する要素がない場合、コードの実行はループを抜けます。必要に応じて、具体的に確認できsocialLinks.size() > 0ます...その場合はメッセージをログに記録します。あなたのケースで何が最善かを決める必要があります。

List<WebElement> socialLinks = driver.findElements(By.cssSelector("div.dvPageShare"));
for (WebElement socialLink : socialLinks)
{
    System.out.println("Present");
    System.out.println(socialLink.getAttribute("style"));
}

この CSS セレクターは、クラス (.) dvPageShare を持つdiv.dvPageShareを見つけることを意味します。DIV

コードを実行しようとはしませんでしたが、そのページに が 2 つありDIVclass = "dvPageShare"そのうちの 1 つにはスタイル属性がありませんでした。多分それnullはどこから来ているのですか?

CSS セレクタ リファレンス。それらを学んでください...それらは非常に強力であり、すべての自動化者はそれらを理解して使用する必要があります。

于 2015-08-26T18:03:13.897 に答える