2016-09-16 81 views
0

我一直在做一些硒最近的工作,我遇到了click()函數的問題。硒點擊()跳過

給出下面的HTML代碼:

<div id="sendreply"> 
     <input type="submit" class="button norm-green" value= 
     "Send Message name="sendmessage"> == $0 
    </div> 

我一直在試圖點擊「發送消息」按鈕,單擊但()剛好經過的動作而進入下流操作。

我曾嘗試按名稱和XPath查找元素:

time.sleep(2) 
    option='by_name' 
    if option == 'by_name': 
     driver.find_element_by_name('sendmessage').click() 
    else: 
     driver.find_element_by_xpath("//div[@id='sendreply']").click() 

我沒有得到任何錯誤代碼任何責任。

任何幫助非常感謝。

+0

請注意,我複製HTML時發生錯誤。實際的HTML包含一個雙重素數:「發送消息」 – David

回答

0

如果你已經嘗試了所有,但沒有獲得成功,請嘗試使用execute_script()作爲一個替代的解決方案來進行點擊,並從這個問題擺脫如下: -

driver.execute_script("arguments[0].click()", driver.find_element_by_name('sendmessage')) 

警告: - 該JavaScript注射HTMLElement#click()不應該在測試環境中使用。它打敗了測試的目的。首先是因爲它不會產生像真正的點擊(focus, blur, mousedown, mouseup...)這樣的所有事件,其次是因爲它不能保證真正的用戶可以與元素進行交互。但是,您可以將其用作替代解決方案來擺脫此問題。