如何在 Capybara/Poltergeist 页面上 运行 一个函数?
How to run a function on a page with Capybara/Poltergeist?
我在 <script> ... </script>
标签中有一个带有 JS 函数(通过鼠标单击调用)的页面。在我进行测试时,我遇到了 .click 方法多次无法正常工作的问题。因此我决定简单地手动调用该函数。但是我在互联网上没有找到教我这样做的资源。
我想避免点击链接而只是调用 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>
你可以 运行 任意 JS 与 execute_script
page.execute_script("doSubmit('5')")
如果您希望得到 return 值,请使用 evaluate_script
- 此处均有记录 - http://www.rubydoc.info/gems/capybara/Capybara/Session#evaluate_script-instance_method
当然,如果你真的在测试一个应用程序,你最好弄清楚为什么点击对你不起作用并修复它,因为仅仅调用 JS 函数你实际上并没有测试它你的应用程序有效。
编辑:打字错误 doSubit 更改为 doSubmit
我在 <script> ... </script>
标签中有一个带有 JS 函数(通过鼠标单击调用)的页面。在我进行测试时,我遇到了 .click 方法多次无法正常工作的问题。因此我决定简单地手动调用该函数。但是我在互联网上没有找到教我这样做的资源。
我想避免点击链接而只是调用 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>
你可以 运行 任意 JS 与 execute_script
page.execute_script("doSubmit('5')")
如果您希望得到 return 值,请使用 evaluate_script
- 此处均有记录 - http://www.rubydoc.info/gems/capybara/Capybara/Session#evaluate_script-instance_method
当然,如果你真的在测试一个应用程序,你最好弄清楚为什么点击对你不起作用并修复它,因为仅仅调用 JS 函数你实际上并没有测试它你的应用程序有效。
编辑:打字错误 doSubit 更改为 doSubmit