2016-03-30 5 views
0

Der folgende HTML-Code ist Teil eines Dialogfelds zur Erstellung von Facebook-Ereignissen. Ich versuche das Stundenfeld so zu manipulieren, dass es den Wert 9 hat, und habe viele verschiedene Kombinationen ausprobiert, aufbauend auf den Ratschlägen anderer hier bei StackExchange. Dieser hat mich bekam:Verwenden von Selenium IDE zum Identifizieren und Bearbeiten einer div/input/span-Kombination

<div class="_4nxi" dir="ltr"> 
<div class="_4nx7 _4nww _5pw0"> 
<div class="_4nwx"> 
    <label style="background-color: transparent;" class="_4nx3 _5pw6" for="js_9" aria-hidden="true">7</label> 
    <input style="background-color: rgb(255, 255, 255);" id="js_9" class="_4nx5" aria-label="hours" aria-valuetext="7" role="spinbutton"> 
</div> 
</div><span class="_4nxh _5pwa" aria-hidden="true">:</span> 
<div class="_4nxe _4nww _5pw0"> 
<div class="_4nwx"> 
    <label class="_4nx3 _5pw6" for="js_a" aria-hidden="true">30</label> 
    <input id="js_a" class="_4nx5" aria-label="minutes" aria-valuetext="30" role="spinbutton"> 
</div> 
</div> 
<div class="_4nxa _4nww _5pw0"> 
<div class="_4nwx"> 
    <label class="_4nx3 _5pw6" for="js_b" aria-hidden="true">AM</label> 
    <input id="js_b" class="_4nx5" aria-label="meridiem" aria-valuetext="AM" role="spinbutton"> 
</div> 
</div> 
</div> 

Ich glaube nicht, den Eingang (id = js_9) ist das Feld zu manipulieren, so scheint es für andere Zwecke verwendet werden, dh als ‚Spinbutton‘. Ich habe es aber versucht. Die ID des äußeren Teilbereichs ändert sich dynamisch, wenn auf den Wert geklickt wird. Daher versuche ich, sie zu vermeiden (und habe sie oben nicht eingefügt).

ich versuchte type und sendKeys und typeKeys zu verwenden, aber ich denke, dass eine Kombination von nicht um den richtigen Befehl mit und verschiedenen divs/Ein- und Spannweiten bedeutet, dass ich die Lösung fehle. Das Aufzeichnen der Aktionen zeigt keine Interaktion. Vorschläge geschätzt.

Ich habe versucht, die folgenden:

typeKeys|//div[@class='_4nx7 _4nww _5pw0 _5pw1']|9 
click|//div[@class='_4nx7 _4nww _5pw0 _5pw1'] 

und

typeKeys|//label[@class='_4nx3 _5pw6']|9 
click|//label[@class='_4nx3 _5pw6'] 

und

typeKeys|id=js_9|9 
click|id=js_9 

und

sendKeys|//div[@class='_4nwx']|9 
+0

Benötigen Sie auch wirklich Selenium IDE für die Erstellung von Facebook-Events? Warum machst du es? – Antesser

Antwort

0

Hinter diesem Label befindet sich ein übliches Eingabefeld. So können Sie:

sendKeys | //input[@class='_4nx5'] | 9 

Nützliche Cheat - nie ID auf Facebook verwenden. Es ist nicht stabil.

+0

Das funktioniert, obwohl es auch instabil war, da dieser Stil von anderen Feldern verwendet wurde, nämlich ein anderes Stundenfeld auf derselben Seite! Also habe ich folgendes verwendet: '//th[text()="Start"]/../td/div/div/div/div/div/div/div[input/@aria-label='hours']/ input/'Dies betrachtet den inneren HTML und konzentriert sich auf die spezifische Stunde, indem der Name der Zeile betrachtet wird. Ich stimme @Antesser IDs sind instabil. Ich mache es, um einige Prototypen und Anwendungsfälle für API-Projekte zu erstellen. –