2011-11-02 32 views
7

Tôi đang sử dụng cơ giới hóa để loại bỏ một số trang web.Những hạn chế của cơ giới hóa là gì? và sự khác biệt giữa cơ chế hóa và watir

  • Tôi cần biết những hạn chế về cơ giới hóa là gì? Những gì cơ giới hóa không thể làm gì?
  • Nó có thể thực thi các javascripts được nhúng trong trang web không?
  • Tôi có thể sử dụng nó để gọi các chức năng javascript không? Tôi không nghĩ nó có thể. Tôi nghĩ rằng Watir có thể.
  • Sự khác nhau giữa nó và watir là gì?

Trả lời

13

Cơ chế có thể hoạt động rất nhiều. Nó sử dụng net/http vì vậy bất cứ điều gì bạn có thể làm với net/http bạn có thể làm với cơ giới hóa. Mặc dù nó hỗ trợ nhiều hơn theo mô tả của chúng:

Thư viện cơ sở được sử dụng để tự động tương tác với trang web. Cơ chế tự động lưu trữ và gửi cookie, theo dõi chuyển hướng, có thể theo liên kết và gửi biểu mẫu. Các trường biểu mẫu có thể được điền và gửi. Cơ chế cũng theo dõi các trang web mà bạn đã truy cập dưới dạng lịch sử.

Kiểm tra liên kết này đối với một số thông tin về việc sử dụng javascript với mechanize: here

Nó sẽ dễ dàng hơn nhiều để cho bạn biết nếu mechanize hỗ trợ một chức năng cụ thể/nhiệm vụ thay vì đi qua tất cả mọi thứ. Bạn đang tìm kiếm chính xác điều gì?

Javascript là điều cơ giới hóa không thể thực hiện được. Điều duy nhất nó hỗ trợ hầu hết thời gian là hiển thị các liên kết Javascript. tức là sử dụng page.links.each {|link| puts link.text} cũng sẽ hiển thị Javascript, nhưng bạn sẽ không thể nhấp/chọn chúng.

Về đơn giản, Watir hỗ trợ Javascript. Nó thực sự là trình duyệt của bạn hỗ trợ javascript và Watir điều khiển trình duyệt.

Watir chạy trình duyệt thực (FF, Chrome, IE) và kiểm soát trình duyệt đó bằng chương trình. Nó hoạt động giống như người dùng khi truy cập một trang web. Đây là những gì cho phép bạn sử dụng javascript. Watir chỉ điều khiển trình duyệt và trình duyệt là trình gửi yêu cầu và nhận phản hồi cũng như hiển thị/xử lý tất cả. Bạn bị giới hạn bởi tốc độ của trình duyệt bạn sử dụng.

Cơ chế mặt khác hoạt động giống như 'trình duyệt' của chính nó và nhanh hơn nhiều so với Watir, trở thành nó không hiển thị các trang. Nó nói chuyện trực tiếp với máy chủ và xử lý phản hồi thô. Cơ chế bị giới hạn bởi tốc độ kết nối của bạn.

Watir sẽ được sử dụng qua Cơ chế khi bạn cần xem và xem điều gì đang xảy ra, sử dụng javascript hoặc làm bất kỳ điều gì liên quan đến GUI. Cơ chế hóa nhanh hơn nhiều và tốt cho việc kiểm tra cấu trúc thực tế của trang web. (kiểm tra liên kết/thông tin đăng nhập/v.v.)

+1

Về mặt kỹ thuật, Watir chỉ hỗ trợ IE. Để làm FireFox (phiên bản hiện tại), Chrome, Opera hoặc hoạt động không cần thiết, bạn cần sử dụng Watir-Webdriver. (Tương tự như API Watir cơ bản, nhưng sử dụng trình điều khiển web để điều khiển trình duyệt) Cũng có một phương thức .execute_script, nhưng nó thường bị cau mày vì đó không phải là điều người dùng có thể làm, tuy nhiên trong một số trường hợp, đó là cách dễ nhất điều khiển điều khiển –

+1

Watir có thể hoạt động trên máy chủ Linux không có "hiển thị" không? làm thế nào nó sẽ mở trình duyệt mà không cần hệ điều hành hiển thị? –

+1

Bạn sẽ cần phải đi không đầu, tôi đã không bao giờ thử nó và sẽ không biết làm thế nào để làm điều đó. Có lẽ nhìn vào đá quý Mechanize để thay thế. –

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