Können Sie Seleniums EC.presence_of_element_located mit einem Klassenselektor anstelle eines ID-Selektors verwenden?
Sie versuchen, Seleniums EC zu verwenden. Die Methode „presence_of_element_located“ wartet darauf, dass ein Element mit der Klasse „ng-binding“ zu „ng-scope“ wird auf einer Webseite vorhanden, aber es funktioniert nicht. Die Fehlermeldung, die Sie erhalten, lautet:
Message: invalid selector: Compound class names not permitted
Dieser Fehler tritt auf, weil EC.presence_of_element_located die Verwendung mehrerer Klassennamen in seinem Selektor nicht unterstützt.
Lösung
Um mit Selenium auf ein Element mit einer bestimmten Klasse zu warten, können Sie den By.CLASS_NAME-Locator verwenden. So können Sie Ihren Code ändern:
element = WebDriverWait(driver, 100).until(EC.presence_of_element_located((By.CLASS_NAME, "ng-binding ng-scope")))
Dieser Code wartet darauf, dass ein Element mit der Klasse ng-binding ng-scope auf der Seite sichtbar wird.
Zusätzlich Hinweise
In einigen Fällen müssen Sie möglicherweise stattdessen auch die Methode EC.visibility_of_element_located verwenden EC.presence_of_element_located. Diese Methode wartet darauf, dass das Element nicht nur vorhanden, sondern auch auf der Seite sichtbar wird.
Das obige ist der detaillierte Inhalt vonKann EC.presence_of_element_located von Selenium Klassenselektoren anstelle von IDs verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!