casperjs를 통해 아래 요소를 클릭하려고 시도하지만 저에게 효과적이지 않습니다.casperjs를 통해 <img role="button" ...>을 클릭하십시오.
<img alt="Pay Button" class="v-button" role="button" src="https://test/wallet-services-web/xo/button.png" tabindex="0" style="cursor: pointer; transition-property: filter; transition-duration: 0.25s; filter: brightness(1);">
내가 중첩 된 iframe을의 무리를 통해이 요소에 대해 검색하고, 내가 정확하게 찾을 수 있습니다 -하지만 정확하게 클릭 수없는 것.
if (casper.exists('img.v-button')) {
console.log("Found button"); // the exists works - this is logged
casper.click('img.v-button'); // Approach 1: nothing happens
// Approach 2: nothing happens
// var x = require('casper').selectXPath;
// casper.click(x('(//img[@class="v-button"])'));
return true;
} else {
var result = traverseTreeDown();
if (result) {
return true;
} else {
casper.page.switchToParentFrame();
}
}
접근 방식 1과 2는 모두 "존재하는"블록 내부에 올바르게 들어가도 작동하지 않습니다. 당신은 접근을 시도해야
더 나은이 아마 생각 way-- 대안이있다. 클릭을 처리하기 전에 함수에서 'true'를 반환한다고 생각합니다. 'setTimeout (() => casper.click (img), 0)'에 래핑 해보십시오. – Todd
흥미로운 점 - 시도하고 다시 게시 할 것입니다. 따라서 하나의 "casper.then (function()"블록 내부에있을 때 명령 완료를 엄격하게 명령 할 수는 없습니다. 두 명령을 모두 완료하기 위해 엄격한 순서가 필요할 경우 명령을 완료해야합니다. 연속적이지만 별개의 "casper.then (function()"블록에서? 또는 제안한대로 타임 아웃을 통해 별도의 스레드를 생성하십시오 ... – Phoeniyx