2016-08-01 18 views
0
<input id="lblProductName+Modem promo +default" 
    class="cmpAvailableSingleSelectProduct-radioButton" 
    type="radio" 
    onclick="cmpAvailableSSProductRadioToggleHandler(event, this,'Line_0.DSL.modemcre_s021403', 'false');" 
    name="defaultLine_0.DSL.modemcre_s021403Modem promo"> 

Der obige Typ ist ein Optionsfeld, bei dem die ID auf dem nächsten Div-Tag basiert.Lokalisieren des Xpath eines Radiobuttons basierend auf dem angrenzenden Text

<div class="cmpAvailableSingleSelectProduct-lblProductName">Modem promo - 100 </div>

Ich weiß, was der Name (Modem Promo - 100) wird innerhalb der div-Klasse. Aber ich möchte auf das Optionsfeld daneben klicken. Ich werde den Wert von "Modem promo - 100" als String bekommen. Ich würde gerne mit dem Text vergleichen und auf das nebenstehende Optionsfeld klicken.

Bitte helfen Sie mir, wie man Xpath schreibt oder das webElement findet. Vielen Dank!

+0

Wenn Sie Radioknopf basierend suchen möchten auf der nächsten div-Element, versuchen Sie diese Locator '// div [enthält (@class, 'cmpAvailableSingleSelectProduct-lblProductName']/Vorgänger-Geschwister :: input/'Ich hoffe, es hilft! – Harish

+0

Aber ich habe mehrere cmpAvailableSingleSelectProduct.Ich brauche nur eine Möglichkeit, das Element basierend auf dem Wert innerhalb der div, die ist ** Modem promo - 100 ** – Mathan

+0

'// div [enthält (@class, 'cmpAvailableSingleSelectProduct-lblProductName') und text() = 'Modem pr omo - 100 ']/previous-sibling :: input/'- probiere das – Harish

Antwort

0

Sie versuchen sollten, wie unter Verwendung von XPath: -

String ValueOfPromo = "Modem promo - 100"; 

String xpath = "(.//div[contains(.,'" +ValueOfPromo+ "')]/preceding::input)[1]"; 

driver.findElement(By.xpath(xpath)); 

Hoffe, es hilft .. :)

+0

Danke Saurabh. Wird überprüfen und Sie wissen lassen. – Mathan

Verwandte Themen