casperjs点击twitter按钮

时间:2014-01-11 18:39:18

标签: phantomjs casperjs

我使用casperjs自动点击推特分享按钮。 Twitter使用iframe创建这个按钮:

<iframe src="some src">

</iframe>

当我点击它打开弹出窗口时,但是当我尝试登录twitter时,我收到错误,form not found

casper.withFrame(0) { //it twitter iframe
   this.fill("#twitter-widget-0 form#update-form", {
     "session[username_or_email]": "myemail@email.com",
     "session[password]": "password"
  }, true);
});

为什么呢?有可能与casperjs?

1 个答案:

答案 0 :(得分:0)

我不熟悉Twitter小部件,但您确定 #twitter-widget-0 不是您刚刚切换到的iframe的ID吗?这似乎是这样,因为我找到了这样的代码:https://dev.twitter.com/discussions/11450

如果您切换到iframe,则无法再访问父页面中的元素,并且您正在尝试访问位于父级中的iframe元素。 您应该选择表单#update-form ,因为它不是 #twitter-widget-0 的子元素:它只是iframe中包含的元素。

如果是这样,解决方案就是从iframe中的选择器中省略#twitter-widget-0

casper.withFrame(0) { //it twitter iframe
   this.fill("form#update-form", {
     "session[username_or_email]": "myemail@email.com",
     "session[password]": "password"
  }, true);
});