Windows 8.1에서 PhantomJS 1.9.7을 사용하고 사용자 이름과 암호를 입력 한 후 로그인 버튼을 클릭하겠습니다. 나는 사용자 이름과 패스워드를 쓸 수는 있지만 PhantomJS가 버튼을 클릭하기를 원할 때, 요소를 찾을 수는 있지만 그것을 클릭 할 수는 없다. 이전 게시물에서 이벤트를 만들고 "dispatchEvent"를 사용해야 함을 발견했습니다. 나는 그랬지만 다음과 같은 오류가 발생했다.PhantomJS가 기존 요소를 클릭 할 수 없습니다.
TypeError: 'undefined' is not a function (evaluating 'elm.dispatchEvent(event)')
나는 또한 EventListener로부터 도움을 얻으려고했지만 그와 같은 오류가있다.
요소를 어떻게 클릭 할 수 있습니까?
var page = require('webpage').create();
page.open('URL', function() {
var submitButton = enterUserAndPassAndLogin();
click(submitButton);
phantom.exit();
});
function enterUserAndPassAndLogin() {
var element = page.evaluate(function() {
document.querySelector('input[name="username"]').value = "*******";
document.querySelector('input[name="password"]').value = "*******";
return document.getElementsByTagName("Button");
});
return element;
}
function click(elm) {
var event = document.createEvent("MouseEvent");
event.initMouseEvent("click", true, true, window,
0, 0, 0, 0, 0, false, false, false, false, 0, null);
elm.dispatchEvent(event);
}
당신이 버튼을 클릭 할 때 사용하는 코드를 작성할 수 있습니다 :
가능한 스크립트는이 무엇입니까? –
@cracker : [단어 강조 표시를 위해 [인라인 코드 스팬]을 사용하지 마십시오. (http://meta.stackexchange.com/questions/135112/inline-code-spans-should-not-be-used-for-emphasis- 오른쪽) - 종종 필요하지 않으며 무엇인가 정말로 강조해야 할 필요가있는 경우 [굵은 체 또는 이탤릭체 사용] (http://www.etf.europa.eu/authorssite.nsf/Pages/Use%20of%20bold%20and%20italics) 대신. 인라인 코드 스팬은 문장 내 코드의 경우에만 (이름에서 알 수 있듯이) 게시물을 편집 할 때 명심하십시오. –
물론, 다음에 신경을 써서 고마워. – cracker