watir
  • browser-automation
  • 2011-05-06 47 views 1 likes 
    1

    一個頁面上的按鈕具有下面的代碼:無法點擊按鈕 - 的Watir

    <a onclick="return ValidateAll();" id="btnSignin" tabindex="5" href='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("btnSignin", "", true, "Login", "", false, true))'>Sign In 
    

    我的代碼:ie.button(:id,"btnSignin").click不會引發任何錯誤但不點擊按鈕

    如何使按鈕點擊?

    回答

    1

    你的按鈕是一個超鏈接,那麼試試這個:ie.link(:身份證, 「btnSignin」)。單擊

    +0

    我們的代碼不會引發error..yet按鈕實際上沒有點擊...謝謝對於你的回覆,雖然 – Chandiran 2011-05-06 15:47:52

    1

    你的代碼中有一個錯字。

    ie.button(:身份證, 「btnSigin 」)。單擊

    應該是:

    ie.button(:身份證,「 btnSignin」)。單擊

    +0

    這是我發佈時的錯字.... – Chandiran 2011-05-06 16:28:41

    1

    我猜測會是你需要消除JavaScript事件。要找出哪些事件應該被解僱讀How to find out which JavaScript events fired?

    沒有大量的試驗,這可以工作:

    browswer.link(:id => "btnSignin").fire_event "onclick" 
    
    +0

    不幸的是,你提到的那個不起作用。這是記錄螢火蟲事件:鼠標按下clientX = 1129,clientY = 320 重點 鼠標鬆開clientX = 1129,clientY = 320 點擊clientX = 1129,clientY = 320 它等待DOMActivate 鼠標移開clientX = 1129,clientY = 320其中一個開發商說,它實際上是一個ASP控制 LLINKBUTTOn 和onclick處理程序是在代碼後面的文件 保護無效btnLogin_Click(對象發件人,EventArgs e) 因此沒有JS涉及按鈕點擊這裏的事件處理程序。 感謝您的回覆 – Chandiran 2011-05-09 16:03:00

    +1

    ASP是服務器端的東西。我認爲你的開發人員在客戶端和服務器端之間感到困惑......在Watir涉足的地方,我們都在客戶端。你發佈的代碼非常具體地稱爲Javascript,我們都可以在那裏看到它。首先發生的事情是,有一個事件處理程序希望執行JavaScript ValidateAll()方法..你是否可能在窗體上出現某種驗證錯誤,是否還有其他值需要適當填充獲得認可?我們可能需要查看更多的頁面或表單。 – 2011-05-11 18:31:13

    +0

    我無法通過文本找到按鈕,不會返回任何內容。所以必須像這樣修復@ browser.buttons.each {| b | (b.fire_event「onclick」; break)if b.text =='Proceed to Checkout'} – territorial 2017-03-30 23:55:42

    相關問題