2016-10-13 2 views
0

Hallo allerseits die Funktion meines Codes ist es, eine Benutzer Schuhgröße Präferenz zu nehmen und klicken Sie dann auf ein Element auf der Seite basierend auf ihrer Größe. Ich werde dies tun, indem ich numerische Eingaben vom Benutzer nehme und sie in einem Wert ablege, und dann nach dem Element suche, das der eingegebenen Größe entspricht.Wie targe mehrere "li" mit demselben Klassennamen

Hier ist der HTML-Code von der Website verwende ich:

<div class="form product__form product__form--size product__form--last js-select-size-mapper"> 
<ul class = "product-size"> 
<li class = "js-size-value "> 
8 
</li> 
<li class = "js-size-value "> 
9 
</li> 
<li class = "js-size-value "> 
9.5 
</li> 
<li class = "js-size-value "> 
10 
</li> 
<li class = "js-size-value "> 
10.5 
</li> 
</ul> 
</div> 

ich immer irgendeine Art von Fehler angezeigt wird darüber, wie das Element nicht angeklickt ist. Der seltsame Teil ist manchmal, dass die IWebElement-Deklaration verifiziert ist (ich meine, es gibt keinen Fehler bei der Deklaration), manchmal gibt es einen Fehler, wenn ich versuche zu klicken.

Wenn Sie ein besseres Codebeispiel benötigen, wechseln Sie zur Website here.

Zum Beispiel, wenn ich diesen Code ausführen:

var element = driver.FindElement(By.XPath("//li[contains(@class,'js-size-value ')][contains(text(),size)]")); 
      element.Click(); 

* Anmerkung, ich habe bereits eine Variable deklariert als „Größe“, und das ist, was ich bin auf, wenn sie sagt: „(text() , Größe)]“

ich den Fehler:

Additional information: Unexpected error. Element is not clickable at point (825.1500244140625, 45.69999694824219). Other element would receive the click: div class="header__wrapper">

ich weiß nicht, wie man diesen Ansatz, und etwas Licht auf sie im allgemeinen werfen müssen. Ich habe stackoverflow nach Antworten durchsucht und habe keine Posts gefunden, die genau das betreffen, was ich zu erreichen versuche, oder die vage und schwer zu verstehen sind.

Bitte seien Sie vorsichtig, wenn Sie antworten, dass ich Selenium und C# im Allgemeinen neu bin. Wenn Sie also ein paar Details in Ihre Antworten einfügen und nicht davon ausgehen, dass ich weiß, wovon Sie sprechen, wäre das großartig.

Antwort

0

Sie haben versehentlich die Größe als Text und nicht als Variable festgelegt. Dies bedeutet, Selen ein Listenelement mit dem Text ‚Größe‘ suchen, die, anstelle von 9,5, zum Beispiel Größe

var element = driver.FindElement(By.XPath("//li[contains(@class,'js-size-value')][contains(text()," + size + ")]")); 
+0

Hallo Bouke nicht vorhanden ist, lief ich den Code, den Sie vorgeschlagen und ein kleines Fenster tauchte sagen Firefox wurde aktualisiert ... Jetzt bekomme ich einen Fehler "WebDriverException is unhandled" auf der neuen firefoxdriver() Zeile und Firefox öffnet sich, wird aber auf keine Seite gehen. Ich weiß, dass es nichts mit deinem Code zu tun hat, aber hast du irgendwelche Vorschläge? –

+0

Es ist sehr gut möglich, dass WebDriver mit FireFox nicht auf dem neuesten Stand ist. Ich würde vorschlagen, FireFox wieder auf die vorherige Version herunterzustufen oder Chrome vorerst zu verwenden. – Bouke

+0

Ich folgte einem Tutorial und stufte FireFox herunter. Nachdem ich Ihren Code ausprobiert habe, erhalte ich den Fehler: –

Verwandte Themen