2016-04-14 12 views
1

Ich habe eine Webseite, die etwa wie folgt aussieht:Klicken auf erstes sichtbares Element einer bestimmten Klasse in Selenium

<div class="itemHolder" style="display: none;"></div> 
<div class="itemHolder" style="display: none;"></div> 
<div class="itemHolder" style="display: none;"></div> 
<div class="itemHolder"></div> 
<div class="itemHolder" style="display: none;"></div> 
<div class="itemHolder" style="display: none;"></div> 
<div class="itemHolder"></div> 
<div class="itemHolder" style="display: none;"></div> 

ich auf dem ersten itemHolder verdoppeln muß, die sichtbar ist. Ich habe versucht, die folgenden zu verwenden, aber ich bin immer einen Fehler

myItem = driver.find_element_by_class("itemHolder") 

actions = ActionChains(driver) 
actions.move_to_element(myItem) 
actions.double_click(myItem) 
actions.perform() 

raise exception_class (Meldung, Bildschirm, stacktrace) selenium.common.exceptions.WebDriverException: Nachricht: Element ist nicht klickbare bei Punkt (310.5, 208). Anderes Element den Klick erhalten würde

Also meine Frage ist, wie kann ich auf dem ersten sichtbaren itemHolder in Selen klicken.

Antwort

2

Sie können für das Element suchen, die nicht über Attribut style="display: none;"

driver.find_element_by_css_selector('.itemHolder:not([style="display: none;"])') 
+0

Thank you so viel, das perfekt funktioniert. akzeptiere diese Antwort in 11 Minuten (so schnell ich kann) – Keatinge

Verwandte Themen