我使用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?
答案 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);
});