2017-06-27 14 views
-2

私はwebdriverを初めて使い、サイトを自動化しています。そのページでテキストを見つけなければならず、その親のdivをクリックしたいと思います。誰でも助けてくれますか? 以下はHTMLコードです。子どもが特定のテキストを含む親をクリックする方法

<div class="col-md-6 col-sm-6 col-lg-6"> 
 
<p> 
 
<strong class="detailShow ng-binding" ng-click="showJobs('NonInvite',item.taskId)"> TEST CR1 START DATE </strong> 
 
</p> 
 
</div>

+1

既にお試しいただいた内容を共有してください – Andersson

+0

//以下にタスク名が記載されています \t Thread.sleep(1000); \t driver.findElement(By.xpath( "// class = 'col-md-6 col-sm-6 col-lg-6'および.// p/strong [contains(text()、 ' TEST CR1 START DATE ')]] "))をクリックします。 \t 正しいかどうかわかりません。 – Mansi

+0

@MansiShrimaliなぜあなたは 'parent div'をクリックする必要があるのか​​、あなたのUsecaseを更新することを検討できますか?あなたの仕事とあなたが直面しているエラーを紹介することを検討してください。ありがとう – DebanjanB

答えて

0

直接XPathを使用しているこれを達成するための最も簡単な方法。

あなたはこのような 'より醜い' の方法を選択することができます。

.//strong[contains(@class,'detailShow')]/../.. 

説明:

/.. - これはあなたが親要素を取得する方法です。ただ1つを持つことは、<p>タグを取得することを意味するので、<div>を取得するには別のタグが必要です。

それとも、あなたがこのような優れた方法で行くことができます:

.//strong[contains(@class,'detailShow')]/ancestor::div[@class='col-md-6 col-sm-6 col-lg-6'] 

説明: ancestor::div - この1つはまで上がると<div>タグがあるすべての親を返します。あなたが唯一の最初<div>親を必要とするので、あなたはそれゆえ、そのいずれかを指定する必要があります。今すぐancestor::div[@class='col-md-6 col-sm-6 col-lg-6']

、ブートストラップクラスは、あなたの唯一の識別子であり、そしてあなたはあなたも一緒に行くことができ<table>内かもしれチャンスがある場合ancestor::div[1]

+0

それは動作しませんでしたが、私に何をする必要があるかというアイデアをくれました。どうもありがとうございました。 – Mansi

+0

さて、strongタグと祖先の間でpタグも使用してください。そして祖先のために、ancestor :: div [1]で2番目のケースを使用することができます。とにかく、より完全なhtmlコードがなければ、これに近づく最良の方法が何かを推測するのは難しいです。 – Cosmin

関連する問題