繁体   English   中英

如何在Capybara / Poltergeist的页面上运行一个函数?

[英]How to run a function on a page with Capybara/Poltergeist?

我有一个带有JS函数的页面(在鼠标单击时调用它们)在<script> ... </script>标记内。 在我测试时,我遇到了.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>

您可以使用execute_script运行任意JS

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

如果你期望返回值使用evaluate_script - 这里都记录了 - http://www.rubydoc.info/gems/capybara/Capybara/Session#evaluate_script-instance_method

当然,如果你真的正在测试一个应用程序,那么你最好找出为什么点击不适合你并修复它,因为只是调用JS函数你实际上并没有测试你的应用程序是否正常工作。

编辑:错字doSubit更改为doSubmit

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM