2015-03-25 59 views
2

如何阻止&没有casperjs,硒等纯幻影?如何拖放纯幻影?

我尝试这样的代码,但它不工作

var page = new WebPage(); 
page.open("http://html5demos.com/drag", function() 
{ 
    var coordOne = page.evaluate(function() { return document.getElementById("one").getBoundingClientRect(); });  
    var coordBin = page.evaluate(function() { return document.getElementById("bin").getBoundingClientRect(); }); 

    console.log(coordOne.left + "x" + coordOne.top); 
    console.log(coordBin.left + "x" + coordBin.top); 

    page.sendEvent("mousemove", coordOne.left, coordOne.top); 
    page.render('screenshot1.png'); 

    page.sendEvent("mousedown", coordOne.left, coordOne.top); 
    page.sendEvent("mousemove", coordBin.left, coordBin.top); 
    page.sendEvent("mouseup", coordBin.left, coordBin.top); 
    page.render('screenshot2.png'); 

    phantom.exit(); 
}); 

回答

0

,我读了它不是在HTML5工作。在正常的代码它的工作原理:

var page = new WebPage(); 
page.open("http://www.snook.ca/technical/mootoolsdragdrop/", function() 
{ 
    var coordOne = page.evaluate(function() { return document.getElementById("dragger").getBoundingClientRect(); });  
    var coordBin = page.evaluate(function() { return document.getElementsByClassName("item")[0].getBoundingClientRect(); }); 

    console.log(coordOne.left + "x" + coordOne.top); 
    console.log(coordBin.left + "x" + coordBin.top); 

    page.sendEvent("mousedown", coordOne.left+1, coordOne.top+1); 
    page.sendEvent("mousemove", coordBin.left+1, coordBin.top+1); 
    page.sendEvent("mouseup", coordBin.left+1, coordBin.top+1); 

    page.render('screenshot.png'); 
    phantom.exit(); 
}); 
+0

奇怪,因为[文档】(http://phantomjs.org/api/webpage/method/send-event.html):*对于''mousemove'',然而,没有按钮被按下(即它不拖动)。* – 2015-03-25 13:34:14