Selenium CSS-Selektor nach ID UND mehreren Klassen

8

Als ich das Selen zum ersten Mal hier benutzt habe, habe ich mich gefragt warum:

%Vor%

funktioniert, aber nicht:

%Vor%

Obwohl sie mir gleich erscheinen, bekomme ich:

%Vor%

Ist das beabsichtigte Verhalten oder ein Fehler in Selen? Ich habe einen kurzen Blick in den Bugtracker in Selenium geworfen, aber davon habe ich nichts gesehen. Ich wollte hier nachfragen, bevor ich ein Problem anmelde, das nicht sein muss. Auch soweit ich es verstehe funktioniert es im IE6 nicht, aber wen interessiert das schon. Ich habe Firefox für diesen Lauf verwendet.

    
Renaud 29.01.2013, 17:40
quelle

2 Antworten

7

findElement() findet ein Element im aktuellen Kontext, was bedeutet, dass Ihr erstes Code-Snippet wirklich ein Element findet, das mit .aClass.andAnother input[type=text] übereinstimmt, das in #someId enthalten ist. Das Element mit dieser ID kann die beiden Klassen enthalten oder auch nicht; WebDriver geht nicht davon aus, dass Sie sich auf dasselbe Element beziehen. Es findet nur input , solange seine Vorfahren #someId und .aClass.andAnother sind.

Das ist völlig anders als div#someId.aClass.andAnother input[type=text] , das input[type=text] in div#someId.aClass.andAnother nur findet (dh es ist ein div , das beide die ID enthält und die Klassen).

    
BoltClock 29.01.2013, 17:45
quelle
11

Tatsächlich sind die beiden ziemlich unterschiedliche Selektoren.

Hier ist Ihr cssSelector:

%Vor%

Aber was Sie wirklich schreiben wollten, war:

%Vor%

Beachten Sie den Abstand zwischen ID und Klasse. Du brauchst das.

    
mandu 19.07.2013 01:28
quelle