2011-08-04 17 views
0

余分なリンクを見つけて印刷する必要があります。私は、次のようにして始めました。まず、サイドバーのすべてのリンクの名前を保持する配列のサイズと比較します。カウントが高すぎる/低すぎる場合は、余分な/欠落しているリンクをすべて印刷する必要があります。名前のリストを作成して、配列と比較することができます。私は最初の名前を返すget_text('//li/a')のようないくつかを試しました。 get_text('//li/a[1])は同じですが、他のインデックスは何も返しません。セレンのサイドバーにあるすべてのリンクを印刷する必要があります(xpath?)

アイデア?また、実際のhrefではなく、リンクに表示される名前が必要です。

編集*また、私はセレンとXpathのかなり新しいです。私が必要としている情報があるかどうか、あるいは私がこれについて考えていることを示唆していることがあれば教えてください。

答えて

0

CSS element locatorsを使用してこれを動作させることができました。私はXpathよりもはるかに頻繁にCSSセレクタを使用するので、セレンでもCSSセレクタを使用する方が簡単です。

$selenium->get_text("css=li a:nth-child(1)") 
$selenium->get_text("css=li a:nth-child(2)") 
$selenium->get_text("css=li a:nth-child(...)") 
$selenium->get_text("css=li a:nth-child(n)") 
+0

これは完全に正しいとは思われません。折りたたむリンクの隣に[ - ]アイコンが表示されます。 –

+0

実際のHTMLを見ずに作業していると、完全に実用的な例が得られません。必要に応じてCSSセレクタを変更するだけでよいはずです。 – CuriousCurmudgeon

+0

私はあなたにこのことを嫌うのは嫌いですが、私は頑張りました。私は私には意味をなさない結果を絶えず得ています。これはhtmlの一部です: –

0

使用

(//li/a)[$someNumber] 

これはあなたのXML文書内の//li/a番目$someNumberのテキストを取得します。

はと$someNumberを代用するために使用する値を知るために、あなたは、これらの要素の合計数を知っておく必要があります。

count(//li/a) 
0

これはJAVAです。 perlで同じコンセプトを使うことができます

int totCountInPage=selenium.getXpathCount(//li/a); 
for(int count=1;count<=totCountInPage;count++) 
System.out.println(selenium.getText("xpath=//li[count]/a")); 

これは、すべてのliタグのアンカーリンク内にテキストを印刷します。

関連する問題