2013-07-05 18 views
7

這裏點擊一個鏈接是我試圖點擊鏈接:使用硒使用python

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

我試過幾個選項(如下所示),但他們沒有工作;有任何想法嗎?

  1. self.br.find_element_by_xpath("//*[@id='btnAddKeywords']").click()
  2. self.br.execute_script("OpenAddKeywords();return false;")

這是我已經得到了execute_script錯誤:

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

這是我已經得到了xpath之一:

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

他們究竟如何不工作? –

+0

@AlexanderPetrovich添加了錯誤:) – Mark

+2

您嘗試過'self.br.find_element_by_id('btnAddKeywords')。click()'?如果這不起作用,那就是說你可能不在自己認爲的頁面上。 – n1r3

回答

3

您可以嘗試使用如下所示的xpath。它正在爲我工​​作,因爲我使用了最後一個項目。

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

請嘗試...

+0

其實@Mark試了一下,提到了問題的結果;請仔細閱讀問題,然後回答。 :) –

5

正如我在我自己的問題here,這個問題將通過ActionChains類的手段來解決提及;一個簡短的代碼是在這裏:

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

的主要問題是,在某些情況下,特別是當你在你的頁面中的一些JavaScript代碼,DOM中會改變你之前已經找到了元素將變得陳舊。 'ActionChains'將保持它的活動來執行操作。

+0

@Mark我的問題與你非常相似,Zeinab的解決方案爲我工作 – rapvelopment