возможно ли, чтобы casperjs щелкал по определенному региону

Можно ли заставить casperjs щелкнуть определенную позицию x, y? Я в основном пытаюсь взаимодействовать с холстом (щелкая определенные точки на холсте), но не знаю, как это сделать. Если это невозможно, есть ли внешняя библиотека, которая может это сделать?

Спасибо


person Saad    schedule 14.08.2013    source источник
comment
внешний интерфейс? casperjs основан на phantomjs, я не уверен, есть ли click(x,y) в casper.. но если вы можете получить доступ к фантомному API, у него есть: SendEvent   -  person fusio    schedule 15.08.2013


Ответы (2)


Попробуйте получить доступ к Phantom API:

casper.then(function() { 
    this.page.sendEvent(...)
}); 
person fusio    schedule 14.08.2013
comment
как вы запускаете API, специфичный для phantomJs, в casperjs? - person Saad; 15.08.2013
comment
casper.page — это ссылка на веб-страницу PhantomJS. вы должны быть в состоянии сделать casper.page.sendEvent("mouse..", ..) - person fusio; 15.08.2013

CasperJS предоставляет модуль mouse, который можно использовать для размещения mouse.click. где-то.

Я бы предложил сначала получить область холста, а затем поместить щелчок относительно элемента холста. Вы даже можете иметь свою собственную функцию:

casper.relativeClick = function(selector, x, y){
    var info = this.getElementInfo(selector);
    if (x < info.width && y < info.height) {
        x += info.x;
        y += info.y;
        this.mouse.click(x, y);
    } else {
        console.log("warning: click out of bounds");
    }
}

Затем вы можете вызвать его внутри шага (then* или wait*).

person Artjom B.    schedule 08.07.2014