2017-10-17 13 views
0

今私は(少なくとも私にとっては)複雑で、要素を見つけるのに苦労しています(これは動的なものです - 日々変化します)。以下は、ページ上でどのように見えるかです。それらの1以下いくつかの 'li'の中の動的要素

<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> 
です:上に同じ名前の ' UL'

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

以下は、50 '' です

したがって、ページへのリンク&見出し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(); 

事前にありがとうございます。あなたは、動的HREFとのアンカー要素を見つけようとしている場合には

+0

試したxpathもここにあります: driver.findElement(By.xpath( "// * @ @ id ="グリッド ")/ li [3]/div [2]/div [2]/div [1]/a ")) – Zoran

+0

@ Zoran元の投稿のCSSが、追加したHTMLソースと一致しません。ソースにはない2つの追加のdivがcssにあります。 50個のliの中にリンクが1つしかない場合、indexを使用するのはなぜでしょうか。 "ul [id = 'Grid']> li a [class = 'summary url']"を使用してください。 – Grasshopper

+0

@Grasshopper - 質問を作成するときにどこかで間違いを犯さなければならない - Ideaは長い質問をしなかった。これらの行については、cssselectorとxpathはページから直接選択されます。彼らは正しいです - ちょうどxpathは実際には5番目ではなく3番目の要素です。 – Zoran

答えて

1

、あなたはやや使用することができ、以下のようにするXPath:

// UL [@ ID = 'グリッド'] /リー//のdiv [は(含まれてい]、[tip-teams])] // a [@href]

私は全体の問題を理解しませんでしたが、その階層内の属性hrefを持つすべてのリンクを一覧表示します。この場合、インデックス作成は一切使用しないでください。また、階層のすべてのレベルをドリルダウンする必要はありません。

// a [@href] - これは、値を比較せずに@hrefとのすべてのリンクを提供します。

+0

ありがとう – Zoran

関連する問題