2012-11-23 32 views
10

Tôi đã viết một số phần của ứng dụng PhantomJS. Tôi đang phân tích cú pháp trên trang web nơi tôi đang viết tên người dùng và mật khẩu cho một công thức. Sau này tôi phải bấm vào một liên kết. Trong khi đó, tôi nhận được lỗi này:PhantomJS nhấp vào liên kết trên một trang

TypeError: 'undefined' is not a function (evaluating 'myLink.click()') 

    phantomjs://webpage.evaluate():11 
    phantomjs://webpage.evaluate():22 
    phantomjs://webpage.evaluate():22 

Đây là mã PhantomJS tôi:

if(document.getElementById("m_Content_submitbtn2").getAttribute('data-role') == "button"){ 
     var myLink = document.getElementById("m_Content_submitbtn2"); 
    myLink.click(); 
} 

Và đây là liên kết của tôi:

<div class='button'><a href="#" data-role="button" tabindex='0' onclick='WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;m$Content$submitbtn2&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, true)); return false;' id="m_Content_submitbtn2">Log ind</a></div>&nbsp; 
+1

thể trùng lặp của [PhantomJS; nhấp vào một phần tử] (http://stackoverflow.com/questions/15739263/phantomjs-click-an-element) – Bergi

Trả lời

6

Bạn đang cố gắng sử dụng phương pháp click() trên một <a> phần tử không được hỗ trợ trong tất cả trình duyệt theo mặc định. Thay vào đó, hãy thử sử dụng một cái gì đó như this nơi thay vì myLink.click(); bạn sẽ phải làm eventFire(myLink, 'click');.

+3

Điều này chỉ mang lại cho tôi: Tham chiếuGỗi: Không thể tìm thấy biến: eventFire – mikkeljuhl

+0

Không thấy có liên kết ở đó . Lấy làm tiếc. – mikkeljuhl

+0

trợ giúp. cố gắng sử dụng điều này trong phantomjs và nhận được lỗi tham chiếu không có vấn đề gì. –

2

Hoặc bao gồm jQuery và làm điều gì đó như:

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() 
    }); 
}); 
+0

'page.includeJS' hoạt động đúng cách, nhưng tôi nhận được một' ReferenceError: Không thể tìm thấy biến: $ 'sau đó. – loretoparisi

+0

... ok Tôi cần chuyển sang ngữ cảnh trang 'document' bằng' page.evaluate' anyways. Tại thời điểm đó nó nhận được '$' nhưng điều hướng không xảy ra - Tôi không nhận được gọi lại trong 'onNavigationRequested' – loretoparisi

Các vấn đề liên quan