PhantomJS щелкните ссылку на странице
Я написал несколько частей приложения PhantomJS. Я разбираюсь на веб-сайте, где я пишу имя пользователя и пароль в формуляр. После этого я должен нажать на ссылку. Если я получаю эту ошибку:
TypeError: 'undefined' is not a function (evaluating 'myLink.click()')
phantomjs://webpage.evaluate():11
phantomjs://webpage.evaluate():22
phantomjs://webpage.evaluate():22
Это мой код PhantomJS:
if(document.getElementById("m_Content_submitbtn2").getAttribute('data-role') == "button"){
var myLink = document.getElementById("m_Content_submitbtn2");
myLink.click();
}
И это моя ссылка:
<div class='button'><a href="#" data-role="button" tabindex='0' onclick='WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("m$Content$submitbtn2", "", true, "", "", false, true)); return false;' id="m_Content_submitbtn2">Log ind</a></div>
Ответы
Ответ 1
Вы пытаетесь использовать метод click()
для элемента <a>
, который по умолчанию не поддерживается во всех браузерах. Вместо этого попробуйте использовать что-то вроде this, где вместо myLink.click();
вам нужно будет сделать eventFire(myLink, 'click');
.
Ответ 2
Или включить jQuery и сделать что-то вроде:
var page = require('webpage').create();
page.open('http://www.sample.com', function() {
page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
page.evaluate(function() {
$("button").click();
});
phantom.exit()
});
});