2017-10-17 79 views
0

現在我已經更復雜了(至少對我而言)並且努力尋找元素(這是動態元素 - 每日變化)。以下是它在頁面上的外觀。頂部是 'UL'幾個'li'裏面的動態元素

<ul class="feed-tips" id="Grid" 

以下是50 '' 用同一個名字:

<li class="feed-item vevent tip-list-row" 

低於 '' 中的一個是

<div class="tip medium-9 small-12 column padding-reset dtstart tip-list-row__tip"> 
<a href="link to a page" class="summary url">Heading4</a> 

所以,鏈接到頁面&標題4(在'href')是動態的,從明天起它將毫無用處。 以上是列表中的第5次「禮」,我試圖找到CSS選擇元素,但它不工作 - 這裏是我的嘗試:

//Open 5th from the list 
    driver.findElement(By.cssSelector("#Grid > li:nth-child(5) > div.tip.medium-9.small-12.column.padding-reset.dtstart.tip-list-row__tip > div.tip-match.medium-12.column > div.tip-teams > a")).click(); 

預先感謝您。

+0

嘗試xpath也,這裏是: driver.findElement(By.xpath(「// * [@ id =」Grid「]/li [3]/div [2]/div [2]/div [1]/a「)) – Zoran

+0

@Zoran原始帖子中的CSS與您添加的html源不匹配。在CSS中有2個額外的div在源文件中不存在。如果在50裏爲什麼只有一個鏈接,那麼爲什麼還要使用索引。只需使用「ul [id ='Grid']> li a [class ='summary url']」。 – Grasshopper

+0

@Grasshopper - 我在創建問題時必須犯一個錯誤 - Idea不會產生一個長問題。關於這些行cssselector和xpath,它們是直接從頁面選取的。它們是正確的 - 只是xpath實際上是第三元素,而不是第五元素。 – Zoran

回答

1

如果你正在努力尋找動態的href錨元素,你可以使用稍微如下中的XPath:

// UL [@ ID = '網格'] /李// DIV [包含( @class,'tip-teams')] // a [@href]

我不明白總問題,但它會列出該層次結構中屬性爲href的所有鏈接。在這種情況下,請勿使用任何類型的索引。此外,不需要深入所有級別的層次結構。

// a [@href] - 它將爲您提供與@href的所有鏈接,而無需比較任何值。

+0

謝謝 - 這正是我想找的 – Zoran