2017-06-27 2 views
-2

Ich bin neu bei webdriver und ich automatisiere eine Website. In dem ich einen Text auf dieser Seite finden muss und ich auf sein Elternteil klicken möchte. Kann mir bitte jemand helfen? Unten ist der HTML-Code.Wie man auf einen Elternteil klickt, dessen Kind einen bestimmten Text enthält

<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

Teilen, was haben Sie bereits versucht – Andersson

+0

// unten erwähnen Sie den Namen der Aufgabe \t Thread.sleep (1000); \t driver.findElement (By.xpath ("// Div [@ Klasse = 'Col-Md-6 Col-SM-6 Col-Lg-6' und .// P/Strong [Enthält (Text(), ' TEST CR1 START DATE ')]] ")). Click(); \t Ich bin mir nicht sicher, ob es korrekt ist. – Mansi

+0

@MansiShrimali Können Sie Ihren Usecase aktualisieren, warum Sie auf das Eltern-Div klicken müssen? Betrachten Sie Ihre Arbeit und den Fehler, der Ihnen bevorsteht. Danke – DebanjanB

Antwort

0

Der einfachste Weg, dies zu erreichen, wird XPath direkt verwenden.

Sie können die 'hässlichen' Art und Weise, wie diese wählen:

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

Erläuterung:

/.. - das ist, wie Sie das übergeordnete Element erhalten. Wenn Sie nur eins haben, bedeutet das, dass Sie das <p>-Tag erhalten. Um also das <div> zu bekommen, brauchen Sie ein anderes.

Oder Sie in einer besseren Art und Weise, wie dies gehen kann:

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

Erläuterung: ancestor::div - diese geht bis und gibt alle Eltern, die <div>-Tags sind. Da Sie nur die erst <div> Eltern benötigen, müssen Sie die man angeben, deshalb: ancestor::div[@class='col-md-6 col-sm-6 col-lg-6']

Wenn nun die Bootstrap-Klasse der einzige Kennung ist, und es gibt eine Chance, dass Sie in einem <table> sein können, können Sie auch mit gehen ancestor::div[1]

+0

Es hat nicht funktioniert, aber gab mir die Idee, was ich tun muss. Vielen Dank. – Mansi

+0

Nun, dann benutze auch das p-Tag zwischen dem starken Tag und dem Vorfahren. Und für den Vorfahren können Sie den zweiten Fall mit dem Vorfahren :: div [1] verwenden. Wie auch immer, ohne einen vollständigeren HTML-Code ist es schwer zu erraten, wie man das am besten angehen kann. – Cosmin

Verwandte Themen