2017-05-19 5 views
1

ich die //input[@id=(//label[text()='Search for:']/@for)] zu CSS-Selektor in SelenIch möchte CSS gegeben Xpath in konvertieren

Nach konvertieren möchten ist die HTML-

<td class="mstrSearchFieldSearchBox"> 
    <div title="" class="mstrTextBoxWithIcon" id="id_mstr56" style="display: block;"> 
     <div class="mstrTextBoxWithIconCaption"> 
      <label for="id_mstr56_txt">Search for:</label> 
     </div> 
     <table cellspacing="0" cellpadding="0" class="mstrTextBoxWithIconTable"> 
      <tbody> 
       <tr> 
        <td class="mstrTextBoxWithIconCellInput"> 
         <div> 
          <input maxlength="" onclick="if (mstr.utils.ISW3C) {this.focus();}" onkeypress="return mstr.behaviors.TextBoxWithIcon.onkeypress(arguments[0], self, 'id_mstr56', this.value)" name="id_mstr56_txt" style="background-color: rgb(255, 255, 255);" id="id_mstr56_txt" size="" type="text"> 
         </div> 
        </td> 
        <td class="mstrTextBoxWithIconCellIcon"> 
         <div class="mstrToolButtonRoundedRight" style="background-position: left center;"> 
          <input type="button" title="Search" onmouseout="mstr.behaviors.ToolButtonRounded.unhover(this.parentNode)" style="background-position: left center; cursor: pointer;" class="mstrBGIcon_tbSearch" src="../images/1ptrans.gif" onmouseover="mstr.behaviors.ToolButtonRounded.hover(this.parentNode)" onclick="mstr.behaviors.TextBoxWithIcon.fire('id_mstr56', this.parentNode.parentNode.previousSibling.childNodes[0].childNodes[0].value);return false;"> 
         </div> 
        </td> 
       </tr> 
      </tbody> 
     </table> 
    </div> 
</td> 
+0

@Dev: Ich benutze Google Chrome-Konsole, um Element zu identifizieren und es im automatisierten Test für Selen weiter zu verwenden. Ich bekomme Element als ** $ x ("// input [@id = (// label [text() = 'Suche nach:']/@ for)]") [0] .getAttribute ("id") "id_mstr56_txt" ** Jetzt möchte ich css von diesem Pfad machen –

+0

Wie können Sie das bekommen? '$ x (" // input [@id = (// label [text() = 'Suchen nach:']/@ for)] ") [0] .getAttribute (" id ")" id_mstr56_txt "' Danke – DebanjanB

+0

@Dev: Ich versuchte von der Chromkonsole, um Element zu identifizieren, in dem ich Verbindung des Eingabetyps und sein label hielt, hier label der Steuerung ist ** Suchen nach: ** –

Antwort

-1

Sie können keine direkte Übersetzung, weil CSS-Selektoren kann nicht gefunden werden Elemente durch enthaltenen Text, nur XPath kann das tun. Es könnte einen anderen Weg geben, aber es ist schwer zu sagen, ob dies auf der Seite einzigartig sein wird.

+1

Diese CSS wird Element nicht eindeutig identifizieren, wenn wir mehrere Textfelder des gleichen Typs, hier möchte ich explizit den Labelnamen zur eindeutigen identifizieren –

+0

Erklären Sie den Downvote? – JeffC

+0

@AbbasALI Ich erklärte in der Antwort ... es kann nicht mit CSS-Selektoren getan werden, weil sie enthaltenen Text nicht identifizieren können. Wenn Sie einen Link zu der Seite bereitstellen, gibt es möglicherweise einen anderen Weg. – JeffC

1

Verwenden Sie den CSS-Selektor 'label [for = "id_mstr56_txt"]'. Solange es nur ein Label mit einem for-Attribut "id_mstr56_txt" gibt, sollte dies funktionieren.

0

Ich hoffe, Sie versuchen, das Element mit tagName "Eingang" und Titel mit "suchen" zu identifizieren. Wir können das Element von CSS identifizieren, wie unten,

"input[type='button'][title='search']" 

Auch sind wir keine „id“ Attribut unter tagname „Eingang“ mit. Wie funktioniert dein XPath?

Verwandte Themen