2016-11-24 6 views
0

ウェブサイトの自動化中に要素の相対的なxpathを生成することに固執しました。ダイナミックテキストでhtmlタグを取得する方法とその中​​にスパンを入れる方法

サイト名:www.magicbricks.com/forum

このウェブサイトを訪問し、テキスト「サイ公園」と検索バーに局所性を見つけてみてください。

多くの検索結果が検索ボックスの下に表示されました。今私は 'Project Sai Park、Pune'を選択する必要があります。

//span[text()='Sai Park']/parent::a[text()=', Pune'] 

をしかし、アンカータグでのspanタグの前に存在テキストがない場合、このコードは働いている:

私はこのようなXPathを生成しようとしました。ここで

タグのテキストは、あなたが検索しているかに依存します(テキストはスパンテキストとして扱われます検索)

はタグです:

<a onclick="discussionPageSearchResult('48633','Project Sai Park |Pune','PROJECTS');" id="ui-id-151" class="ui-corner-all" tabindex="-1">Project <span>Sai Park</span>, Pune</a> 

あなたは私を処理する方法を教えてくださいことができますこの?次のXPath式は、あなたが欲しいものを行う必要があります

おかげ

+1

構文解析しようとしているHTMLの見た目をどのくらい正確に表示するかを表示します。 – Markus

+0

質問に追加して、適切にフォーマットしてください。 – Markus

答えて

3

//a[normalize-space()="Project Sai Park, Pune"] 

そのタグ内のテキストは、任意の空白を正規化した後、プロジェクトサイ公園、プネに等しい場合はaタグを選択文字。

+0

ありがとうございましたMarkus、あなたが行ったような完璧なxpathsを生成する方法を学ぶことができる学習Webサイトがありますか教えてください。 –

+0

@ deepak.mr888申し訳ありませんが、そのようなウェブサイトはわかりませんが、Googleはあなたの友人です。私自身、O'ReillyのXSLT 1.0 Pocket Referenceを使ってXPathとXSLTを始めました。そこからは、ほとんどのことで学習していました。 – Markus

0

これを試してみてください:

//スパン[テキスト()= 'サイ公園'] /親:: [(テキスト()、 'プネ')が含ま]

0

は、Javaを使用している場合は、これはあなたを助ける、私は何が起こるか知っているだろう

WebElement element = driver.findElement(By.cssSelector("a[href*='project-sai-park']")); 

//scroll to that element 
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element); 

element.click(); 

希望:以下のソリューションを使用します。