Javascript CasperJS脚本找不到正确的按钮和onclick事件

Javascript CasperJS脚本找不到正确的按钮和onclick事件,javascript,button,css-selectors,casperjs,Javascript,Button,Css Selectors,Casperjs,我的casperjs脚本播放一段视频,然后网页上显示两个按钮以继续查看或单击“填充”。“填充”选项是我想要的,但是按钮具有相同的id,除了所需的选项具有acivate-access()函数: button id="activate" class="btn btn lg" onclick="activate_access(); 我尝试过这样做。单击('#activate'),然后单击这个。单击('#activate.btn.btn lg'),但这只是重新加载一个新视频,所以我认为需要casper

我的casperjs脚本播放一段视频,然后网页上显示两个按钮以继续查看或单击“填充”。“填充”选项是我想要的,但是按钮具有相同的id,除了所需的选项具有acivate-access()函数:

button id="activate" class="btn btn lg" onclick="activate_access();
我尝试过这样做。单击('#activate'),然后单击这个。单击('#activate.btn.btn lg'),但这只是重新加载一个新视频,所以我认为需要casper.evaluate或其他方法,以及如何将正确的onclick事件(即acivate_access())传递给casperjs? 代码:


您不必进入页面上下文并使用domapi或jQuery来单击此元素。CasperJS的
click(selector)
完全能够使用适当的选择器处理此问题

CSS选择器支持基于属性匹配元素

casper.click("button[onclick='activate_access();']");
为了一个完美的匹配,甚至

casper.click("button[onclick*='activate_access']");

对于部分匹配。

如果不同的元素具有相同的
id
属性,那么您真的应该对生成此属性的开发人员感到愤怒。这永远不会发生!此外,PhantomJS有一个与具有相同id的多个元素相关的bug。
casper.click("button[onclick*='activate_access']");