2013-07-05 18 views
7

kullanarak selenyum kullanarak bir bağlantıyı tıkladığınızda ben tıklayın çalışıyorum link: Birkaç seçenekleri denedik (aşağıda listelenmiştir) ama işe yaramadı İşte piton

<a href="#" onclick="OpenAddKeywords();return false;" id="btnAddKeywords">Add Keywords</a> 

; herhangi bir fikir?

Bu

  1. self.br.find_element_by_xpath("//*[@id='btnAddKeywords']").click()
  2. self.br.execute_script("OpenAddKeywords();return false;")
  3. Ben execute_script için var hatadır:

    Message: u'Error Message => \'Can\'t find variable: OpenAddKeywords\'\n caused by Request => 
    

    Ve bu xpath için var biridir:

    Message: u'Error Message => \'Unable to find element with xpath \'//*[@id=\'btnAddKeywords\']\'\'\n caused by Request => 
    
+0

Tam olarak nasıl çalışmadılar? –

+0

@AlexanderPetrovich hataları ekledi :) – Mark

+2

"self.br.find_element_by_id ('btnAddKeywords'). Eğer çalışmıyorsa, düşündüğünüz sayfada bulunmayabilirsiniz. – n1r3

cevap

3

Aşağıdaki gibi xpath kullanmayı deneyebilirsiniz. Benim için çalışıyor çünkü son projeyi kullandım.

driver.find_element_by_xpath("xpath").click() 

Lütfen deneyin ...

+0

Aslında @Mark bunu denedi ve sorudaki sonuca değindi; Lütfen soruyu dikkatle okuyun ve cevap verin. :) –

5

Ben, sorun ActionChains sınıfın vasıtasıyla çözüme kavuşacak kendi soru here belirtildiği gibi; kısa bir kod burada:

el = driver.find_element_by_id("someid") 
webdriver.ActionChains(driver).move_to_element(el).click(el).perform() 

temel sorun sayfanızda bir bazı javascript kodları varken bazı durumlarda, özellikle, DOM değiştirecek ve daha önce buldum eleman staled olacak olmasıdır. 'ActionChains', eylemleri gerçekleştirmek için canlı tutacaktır.

+0

@Mark Benim problemim sana çok benziyordu ve Zeinab'ın çözümü benim için çalıştı – rapvelopment