2013-05-13 45 views
6

Tôi đang tìm một hàm trong javascript mà nhấp vào mọi phần tử (liên kết, nút, ...) trên trang của tôi. Tất cả các yếu tố phải được tắt theo mặc định. Tôi đang sử dụng điều này cho môi trường thử nghiệm của mình trong Selenium để kiểm tra xem tất cả các thành phần trên trang của tôi có bị vô hiệu hóa hay không.Chọn tất cả các phần tử trên một trang

+0

Bạn đã thử gì? –

+0

Tôi đã cố gắng để có được tất cả các liên kết với một chức năng được cung cấp từ selenium: selenium.getAllLinks() và tôi đã thử với click(). Ngoài ra với getAllLinks() Tôi không thể nhận được bất kỳ liên kết nào ... – John

Trả lời

7

Lúc đầu, nhận được tất cả các yếu tố trên trang của bạn:

var elements = document.getElementsByTagName("*"); 

Bây giờ bạn nhận được chúng, làm cho một con chuột-sự kiện, tạo ra một vòng lặp và áp dụng sự kiện này trên tất cả các yếu tố:

var clickEvent = document.createEvent ('MouseEvents'); 
clickEvent.initEvent ('click', true, true); 
for (var i=0; i < elements.length; i++) 
{  
    elements[i].dispatchEvent (clickEvent); 
} 
+0

Hey! Cảm ơn vì đã phản hồi sớm! Tôi có thể làm theo mã của bạn và nó làm cho sence với tôi. Đáng tiếc là tôi không thể lấy bất kỳ phần tử nào ra khỏi document.getElementsByTagName ("*"); – John

+0

Tôi đã thay đổi một số lỗi đánh máy trong mã, có thể nó hoạt động tốt hơn bây giờ? Cũng đảm bảo bạn gọi hàm sẽ kiểm tra các lần nhấp SAU KHI tài liệu được tải. Nếu tôi đặt nó trong câu lệnh onLoad của cơ thể, mã của tôi hoạt động tốt! – JasperV

+0

Vì vậy, nếu bạn đang thực thi mã trình duyệt của bạn nhấp vào mỗi liên kết? Thực ra, nếu các liên kết đang hoạt động, liên kết đầu tiên đã được nhấp vào sẽ chuyển hướng bạn đến trang tiếp theo. Nếu các liên kết bị vô hiệu hóa, không có gì xảy ra. Đó là cách tôi mong đợi nó sẽ hoạt động. Tuy nhiên, bây giờ tôi có thể nhận được các liên kết của trang với selenium.getAllLinks của tôi. Mặc dù, clickEvent doesnt dường như không làm gì cả. – John

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