2013-05-30 11 views
6

Gezindikten sonra görülebilen bir düğmeyi tıklatmak istiyorum. Onun html: Ama çalışmıyorSelenyum ile gezindikten sonra görünür bir öğe nasıl tıklanır?

import selenium.webdriver as webdriver 
from selenium.webdriver.common.action_chains import ActionChains 

url = "http://example.com" 

driver = webdriver.Firefox() 
driver.get(url) 
element = driver.find_element_by_class_name("info") 
hov = ActionChains(driver).move_to_element(element) 
hov.perform() 
element.click() 

:

<span class="info"></span> 

Bu kodu kullanılır. Ben element.click():

selenium.common.exceptions.ElementNotVisibleException: Message: \ 
u'Element is not currently visible and so may not be interacted with' 

herhangi bir öneriniz lütfen kodun son satırı ile bağlı bir bir hata var?

+0

Hatalar tam olarak nedir? – Arran

+0

@Arran, soruyu düzenledim. – nutship

cevap

9

Bahse girerim, öğe görünene kadar beklemeniz gerekir.

üç seçenek:

  • çağrı time.sleep(n)
  • kullanımı böyle WebDriverWaithere, here ve here

Ben ikinci seçeneği ile gitmek istiyorum önerilir.

UPD: yardımcı

driver.execute_script('$("span.info").click();') 

Hope: hiç işe yaramadı selenyum aracılığıyla gezinip bu özel sitede

, tek seçenek execute_script aracılığıyla js kullanarak butonuna tıklayın oldu.

+0

Önerileriniz için teşekkürler, ancak time.sleep'ı denedim ve durum böyle değil. – nutship

+0

Tamam, 'WebDriverWait' çalışmalı, sorunlarınız varsa lütfen bildirin. – alecxe

+0

Geç cevap için özür dilerim, ancak bağlantılarınızı okumak gerekiyordu. Hala benim durumumdaki öğe/düğme olarak her zaman görünür/erişilebilir olduğundan sorunumun farklı olduğunu düşünüyorum. Bu yüzden sayfa yüklenirken anında üzerine gelebilirim. Aralarında ajax/js kod yürütme yoktur. Öğeleri doğru bir şekilde 'find_element_by' veya' xpath' ile yerelleştiremiyorum. – nutship