【发布时间】:2016-03-15 16:46:44
【问题描述】:
我现在正在尝试 2 个小时来找到一个选择器,以便在 facebook 共享对话框中选择一个列表: facebook share dialog
(我不使用他们的 api 来限制对某些功能的访问)
var casper = require('casper').create({
pageSettings: {
loadImages: false, // The WebPage instance used by Casper will
loadPlugins: false, // use these settings
userAgent: 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0'
},
logLevel: "info", // Only "info" level messages will be logged
verbose: true
});
var fs = require('fs');
var dyn = null;
casper.start('http://facebook.com/login.php', function() {
// search for 'casperjs' from google form
console.log("page loaded");
this.test.assertExists('form#login_form', 'form is found');
this.fill('form#login_form', {
email: 'email',
pass: 'pass'
}, true);
this.wait(1000, function() {
casper.capture('login.png');
console.log("screen captured");
});
});
casper.thenOpen('https://www.facebook.com/dialog/share?app_id=966242223397117&redirect_uri=http://www.facebook.com/dialog/return/close&display=popup&href=http://www.isearchforjob.com/', function() {
console.log("debug loaded");
this.wait(1000, function() {
casper.capture('debug.png');
console.log("screen captured");
});
if (this.exists('span._55pe')) {
this.echo('span._55pe exists');
this.click('span._55pe');
this.echo('\n\nspan._55pe clicked\n\n');
}
this.wait(5000, function() {
if (this.exists('li[class="_54ni _42ym _2n3i __MenuItem"] > a._54nc')) {
this.echo('li[class="_54ni _42ym _2n3i __MenuItem"] > a._54nc exists');
this.echo('\n\n li[class="_54ni _42ym _2n3i __MenuItem"] > a._54nc clicked\n\n');
}
});
this.wait(10000, function() {
fs.write('2.htm', this.getPageContent(), 'w');
casper.capture('clicked2.png');
console.log("screen captured");
});
});
casper.run();
第一次点击效果很好这里是截图:
但第二次点击不会:
this.click('li._54ni _42ym _2n3i __MenuItem');
所有列表都使用相同的选择器,所以没用
这是 HTML:
<li class="_54ni _42ym _2n3i __MenuItem" role="presentation">
<a class="_54nc" href="#" role="menuitem">
<span data-reactroot=""><span class="_54nh"><span>Share in a group</span>
是否有机会通过文本获取选择器? “在群组中分享”
在这种情况下是否可以模拟向下箭头键?
【问题讨论】:
-
“在这种情况下是否可以模拟向下箭头键?” - 这到底是什么意思?
标签: javascript css-selectors phantomjs