2012-11-24 43 views
5

Có thể tạo tập lệnh (phantomjs hoặc casperjs) dừng cho nhập bằng tay thủ công (nhập bàn phím) trước khi chuyển sang bước tiếp theo không?Nhập bằng tay khi chạy phantomjs casperjs

Ví dụ: tập lệnh sẽ điền vào biểu mẫu và xuất toàn bộ màn hình dưới dạng .png, sau đó đợi đầu vào của người dùng điền vào trường cuối cùng trước khi nhấp gửi. Captcha là một trong những rào cản yêu cầu này. Tôi không muốn đối phó với Captcha breaker/solver hoặc bất cứ điều gì như thế vì nó chỉ là một thời gian cho mỗi lần chạy.

Bất kỳ trợ giúp nào?

Trả lời

3

Tôi chưa bao giờ làm điều đó, nhưng, tôi biết tập lệnh bạn viết được thực hiện trong trình duyệt/phantom, có thể gửi yêu cầu ajax tới một số máy chủ web cục bộ. Có giao tiếp bên ngoài của bạn.

->screenshot 
->send to local server 
->someones open web browser polls the server for new data entry jobs 
->human submits one 
->server receives submission 
->server routes the response back to that initial ajax request 
->that ajax request that got sent from phantomjs finally receives a response. 

Luồng công việc này có thể được thực hiện bằng bất kỳ loại giao tiếp bên ngoài nào có thể từ ma/casper (Tôi không quen với chúng). Tôi chắc chắn ajax hoạt động, vì vậy tôi sử dụng nó như là một ví dụ.

+2

Cách giải quyết của tôi bây giờ là sử dụng FileSystem và đọc nội dung tệp cho chuỗi hình ảnh xác thực. Nhưng tôi cố gắng tìm hiểu xem có cách nào tốt hơn để làm điều này không. Ajax có vẻ quá mức với tôi. –

+1

hey @HP. Tôi đang ở trong tình trạng tương tự như bạn. Bạn có thể vui lòng cung cấp cho tôi thêm thông tin về cách giải quyết của bạn với FileSystem không? Bạn có tìm cách tốt hơn để triển khai điều này không? Cảm ơn bạn –

+1

Sử dụng FS là một hack rất xấu xí. Tôi sẽ không khuyên bạn nên. Về cơ bản tôi sử dụng một số loại bộ đếm thời gian 'setTimeout' để chờ một chút trước khi đọc một tập tin. Vì vậy, trong vòng 20 giây hoặc lâu hơn, tôi nhanh chóng chỉnh sửa tệp văn bản để cung cấp đầu vào. –

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