Heim > Backend-Entwicklung > Python-Tutorial > Wie verwende ich EC.presence_of_element_located() von Selenium mit mehreren Klassennamen?

Wie verwende ich EC.presence_of_element_located() von Selenium mit mehreren Klassennamen?

DDD
Freigeben: 2024-12-06 08:05:12
Original
665 Leute haben es durchsucht

How to Use Selenium's EC.presence_of_element_located() with Multiple Class Names?

Verwenden von Seleniums EC.presence_of_element_located() zum Angeben einer Klasse

Beim Web-Scraping dynamischer HTML-Seiten wird WebDriverWait mit EC.presence_of_element_located verwendet () ermöglicht es uns, auf das Erscheinen eines bestimmten Elements zu warten Daten abrufen. Normalerweise spezifizieren wir Elemente anhand ihrer IDs. In bestimmten Szenarien müssen wir jedoch möglicherweise stattdessen Elemente anhand ihrer Klassen angeben.

Der ursprüngliche Code versucht, ein Element anhand seiner Klasse zu lokalisieren, indem er EC.presence_of_element_located((By.class, "ng-binding ng- Scope")):

element = WebDriverWait(driver,100).until(EC.presence_of_element_located((By.class, "ng-binding ng-scope")))
Nach dem Login kopieren

Diese Syntax funktioniert jedoch nicht, da sie nicht den Locator-Syntaxregeln von WebDriver entspricht. Die By.class-Methode unterstützt nicht mehrere Klassennamen als Argument.

Lösung:

Um dieses Problem zu beheben, können wir die Funktion „present_of_element_located(“ verwenden. )-Funktion zusammen mit By.CSS_SELECTOR oder By.XPATH, um sowohl die ID als auch die Klassenattribute anzugeben folgt:

Verwendung von CSS_SELECTOR:

element = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".ng-binding.ng-scope#tabla_evolucion")))
Nach dem Login kopieren

Verwendung von XPATH:

element = WebDriverWait(driver, 20).until(EC.presence_of_element_located((By.XPATH, "//*[@class='ng-binding ng-scope' and @id='tabla_evolucion']")))
Nach dem Login kopieren

Durch Kombination von ID und Klasse Attribute können wir das gewünschte Element präzise lokalisieren, auch wenn nur die Klasse angegeben ist.

Das obige ist der detaillierte Inhalt vonWie verwende ich EC.presence_of_element_located() von Selenium mit mehreren Klassennamen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage