2014-07-10 3 views
0

PhantomJS에서 JavaScript를 사용하여 테스트하려면 "http://phantomjs.org/quick-start.html"URL로 이동하여 PhantomJS 로고를 클릭하여 PhantomJS 홈페이지로 가져 오는 스크립트를 작성하려고합니다. . 내 목표는 URL로 이동하여 html 요소를 성공적으로 클릭하는 것입니다. 그러나 나는 오류가 점점 오전 : 여기Phantomjs 페이지 자동화 TypeError : 'null'

TypeError: 'null' is not an object (evaluating 'document.querySelector('img [alt 
="PhantomJS"]').click') 

    phantomjs://webpage.evaluate():3 

    phantomjs://webpage.evaluate():5 

    phantomjs://webpage.evaluate():5 

을 내 코드는 다음과 같습니다

var page = require('webpage').create(); 

page.open('http://phantomjs.org/quick-start.html', function(status) { 
console.log(status); 
page.render('websiteBeforeClick.png'); 

page.evaluate(function() { 
    document.querySelector('img [alt="PhantomJS"]').click(); 
});  

page.render('websiteAfterClick.png'); 
phantom.exit(); 
}); 

내 CSS 선택이 잘못인가?

답변

0

해당 페이지로 이동하여 document.querySelector('img [alt ="PhantomJS"]')을 실행하면 이미 null을 반환합니다.

선택자에있는 [ 이전의 공간 때문입니다. 시도하십시오 document.querySelector('img[alt="PhantomJS"]').

이것이 첫 번째 문제입니다. 그런 다음 click을 사용하려고하지만 작동하지 않으면 click 이벤트를 보내야합니다. 이 문제에 대한 해결책은 other Stack Overflow question을 참조하십시오.