簡體   English   中英

硒:無法從類元素中獲取文本

[英]Selenium: Can't get text from a class element

我有一個html代碼:

    <div class="b7bd16b0909896b5">
        <h3 class="ccd4e6086468523f">PastaMania</h3>

這是我的代碼:

    List<WebElement> restaurants = 
    driver.findElements(By.className("ccd4e6086468523f"));
            for (WebElement restaurant: restaurants) {
                System.out.println(restaurant.getText());
            }

我想獲取文本“ PastaMania”,但我一直在獲取“占位符”。 有人知道怎么了嗎?

更多HTML代碼: outerHTML

從給出的信息來看,尚不清楚該className是否唯一,並且正如@DebanjanB已經指出的那樣,該classname可能是動態的,因此將其用作H3元素的定位符不是一個好主意。

您可以使用以下代碼:

driver.findElements(By.xPath("//ol/li//h3"));

也許需要一點顯式等待,直到h3元素可見。

我檢查了一個C#變體,它給出了正確的結果。 在最終代碼中,必須用更優雅的等待機制替換Thread.Sleep。

結果:

public void TestDeliveroo()
    {
        Driver.Url = "https://deliveroo.com.sg/restaurants/singapore/chinatown?postcode=069535&preselected_tag=1&tags=guilty+pleasures";
        Thread.Sleep(10000);
        IList<IWebElement> restaurants =
            Driver.FindElements(By.XPath("//ol/li//h3"));
        foreach (var restaurant in restaurants)
        {
            Console.WriteLine(restaurant.Text);
        }
    }

提供以下輸出:

土豆頭3個Ke頭西貢葡萄酒連接奶酪吧肉史密斯烤箱炸雞兩個模糊的家伙胖男孩的漢堡吧商人酒窖-Duxton Overeasy Flor Patisserie貓和小提琴哈里新加坡海峽葡萄酒公司-UE Square GO LOCO(盧卡·洛克),Poke Theory牛刀Tess Bar&Kitchen Cajun on Wheels(COW),Ego Ego-新加坡廣場Barossa Molly Roffey's愛爾蘭酒吧Jack's Place葡萄酒連接酒館Rosso Vino紅尾巴哈利

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM