0

Ich geschafft, durch die Websites zu navigieren, aber ich landete auf einer Website, die Javascript und Ajax hat. Der Code in der View Source und Inspect Element sind nicht die gleichen.Wie zu finden und klicken Sie die Elemente in Inspect Element mit Selenium

Mit Selen, kann ich nur Klick-Elemente, die View Source Code in der Gegenwart sind.

Meine aktuellen Code ist dies:

driver.FindElement(By.Id("libraryTab_ManagementPackagesTable_productNameGroup_appdynamics")).Click(); 

Aber die Anwendung Abstürze da das Element in Inspect Element Code, nicht in View Source.

+0

Quelltext anzeigen ist der ursprüngliche HTML-Code vom Server. Inspect-Element ist das, was derzeit vorhanden ist, daher ist es sinnvoll, dass Sie beim Suchen einer ID, die nicht im inspect-Element enthalten ist, einen Element-nicht-gefunden-Fehler erhalten. Mein Vorschlag ist, zu versuchen, das Element auszuwählen, das jquery im Debugger des Browsers verwendet. Wenn Sie können, übergeben Sie diesen Selektor an Selens cssselector. –

+0

Es kann sich um ein dynamisches Element handeln, das durch eine Aktion erstellt wurde, sodass Sie diese Aktion ausführen müssen. –

Antwort

0

Wenn Ihr Element in der ursprünglichen Seitenquelle nicht vorhanden ist, aber dynamisch erstellt wird, müssen Sie möglicherweise ExplicitWait verwenden. Versuchen Sie unter Code:

WebDriverWait wait = new WebDriverWait(Driver, TimeSpan.FromSeconds(15)); 
IWebElement element = wait.Until(ExpectedConditions.ElementToBeClickable(By.Id("libraryTab_ManagementPackagesTable_productNameGroup_appdynamics"))); 
element.Click(); 

Mit obigem Code sollten Sie in der Lage sein, zu warten (nicht mehr als 15 Sekunden), bis Element erzeugt, und es ist anklickbar. Andernfalls erhalten Sie TimeOutException. Sie können das Zeitlimit erhöhen oder verringern.

Verwandte Themen