我已经为LinkedIn写了一个简单的卡斯帕履带式,我正在尝试输入搜索参数到“高级搜索”字段。CasperJS发送'输入'键盘事件提交表单元素
您可以通过登录领英进入高级搜索,然后按搜索栏右侧的“高级”。
导致与相关的问题的代码向输入字段发送'Enter'键盘命令以'提交'。
casper.waitForSelector('#srp_main_', function() {
// Click on 'Current Company'
this.click('li#adv-facet-CC legend.facet-toggle');
// Click on 'Add' button
this.click('#adv-facet-CC button.add-facet-button');
this.then(function() {
this.sendKeys('form#peopleSearchForm input[name=f_CC][type=text]', 'Facebook', {keepFocus: true});
this.sendKeys('form#peopleSearchForm input[name=f_CC][type=text]', casper.page.event.key.Enter, {keepFocus: true});
this.capture('screenshots/added-search-parameters.png');
});
});
理想我想看到的是我寻找被添加为input type=checkbox name=f_CC
元素在页面上这样
http://i.imgur.com/hHBP7FT.png
公司我试图做一个超时,检查对于元素上的eventListeners,使用evaluate()
来模拟浏览器控制台本身的键盘事件,并使用waitUntilVisible
作为自动完成下拉菜单。
因为我本来可以做得不对,所以如果解决方案使用这些方法,请实施它。
那么,如何将一个'Enter'键盘事件发送到这个特定的LinkedIn输入字段。编辑
:输出capture()
http://i.imgur.com/BC41qRP.png?1
看起来很好测试,在我的情况。请注册到'resource.error','page.error','remote.message'和'casper.page.onResourceTimeout'事件([Example](https://gist.github.com/artjomb/4cf43d16ce50d8674fdf)) 。也许有错误。 –
@ArtjomB。谢谢你,控制台错误是非常有帮助的。但是,即使Casper'senKeys'看起来不错,它也不起作用。这是填充文本并按Enter后的屏幕截图http://i.imgur.com/BC41qRP.png?1 –
您是否尝试过直接使用PhantomJS的'page.sendEvent()'函数?我不确定我是否理解这些屏幕截图上会发生什么。 –