Nach Überprüfung der Beiträge zu diesem Problem vor, aber das Problem besteht fort. http://preview.harriscountyfws.org/ ist eine öffentliche Website, die sich auf diese Frage bezieht.Selenium Webdriver ElementNotVisibleException mit Java
Ich versuche, auf ein Drop-Down-Menü zu klicken und "Channel Status" aus dem Drop-down Regenfall auszuwählen.
bekomme ich folgende Fehlermeldung:
Exception in thread "main" org.openqa.selenium.ElementNotVisibleException: element not visible: Element is not currently visible and may not be manipulated
I Screenshot mit Code bin Befestigung, aber Sie können auch die Website besuchen und F12
auf den Code suchen drücken.
Hier ist meine aktuellen Code basiert auf Forschung, die ich bisher getan haben:
Select dropdown = new Select(driver.findElement(By.id("siteType")));
WebElement triggerDropDown = driver.findElement(By.className("k-i-arrow-s"));
triggerDropDown.click();
dropdown.selectByVisibleText("Channel Status");
dropdown.selectByIndex(1);
Weder der letzten beiden Codeanweisungen gezeigt Arbeit (dropdown.select ...) Beides führt in ElementNotVisibleException
.
Nun, das ist nicht wahr, denn durch Drücken der triggerDropDown.Click()
, sind die Auswahlmöglichkeiten sichtbar!
besser. Ich werde warten, bis ich die Antwort akzeptiere, weil andere Leute antworten könnten und ich möchte sehen, was wir alle darüber lernen können. Mein Verdacht, und ich könnte falsch liegen, ist, dass der Bildschirm vielleicht in Panels unterteilt ist, und Sie müssen irgendwie das eine oder andere Panel auswählen, um Komponenten in diesem Panel "sichtbar" zu machen –
JeffC. In der zweiten Zeile sagen Sie "driver.findElement (By.cssSelector (" span.k-widget.kdropdown.k-header ")). Click. Wird nur das erste Vorkommen von?Jetzt, da ich bereit bin, etwas aus dem aktuellen Tab "Niederschlag in der letzten X-Zeit" auszuwählen, habe ich ein Problem, weil das umgebende Element dafür auch "span.k-widget.kdropdown.k-header" heißt. Das ist also eine Herausforderung. Wenn es darauf basiert, das erste Vorkommen dieses Textes zu finden, dann ist es wiederum kein optimaler Code. –
Ja, es ist die erste zu finden. Wenn Sie etwas anderes als das erste auswählen müssen, müssen Sie den Selektor ändern. – JeffC