2016-08-05 96 views
3

我在<script> ... </script>標籤中有一個帶JS功能的頁面(在鼠標單擊時調用它)。在測試過程中,遇到了.click方法無法正常工作的問題。因此我決定只是手動調用該函數。然而,我沒有在互聯網上找到任何教導這樣做的來源。如何使用水豚/ Poltergeist在頁面上運行功能?

我想避免點擊鏈接,只需要撥打doSumbit('5')即可。 謝謝!

的JS功能是:

<script language="javascript"> 
function doSubmit(infoTypeId) { 
    document.forms[1].INFOTYPEID.value = infoTypeId; 
    document.forms[1].action = document.forms[1].action + "#" + infoTypeId; 
    document.forms[1].submit(); 
    document.forms[0].INFOTYPEID.value = infoTypeId; 
    document.forms[0].submit(); 
} 
function doSubmitOne(infoTypeId) { 
    document.forms[0].INFOTYPEID.value = infoTypeId; 
    document.forms[0].submit(); 
} 
</script> 

和上點擊鏈接:

<a href="javascript:doSubmit('11')" >Engine News<br></A> 
<a href="javascript:doSubmit('5')" >Parts Identification<br></A> 
+0

直接調用函數與調用click沒有區別。必須有其他的東西導致這個問題。另外,我不相信你,你還沒有*「在互聯網上發現了一個教會這樣做的來源。」*。這是一個相當普遍的任務,所以你應該提高你的搜索技能,並且開始閱讀API,因爲它不是很長。 –

回答

8

你可以,如果你期望的回報與execute_script

page.execute_script("doSubmit('5')") 

運行任意JS價值使用evaluate_script - 這裏全部記載 - http://www.rubydoc.info/gems/capybara/Capybara/Session#evaluate_script-instance_method

當然,如果你真的測試一個應用程序,你會更好地弄清楚爲什麼點擊不適合你並修復它,因爲通過調用JS函數,你並不真正測試你的應用工程。

編輯:錯字doSubit更改爲提交