Tôi tự hỏi nếu watir-webdriver là khả năng đăng nhập đầu ra của bất kỳ lỗi giao diện điều khiển? Điều này tương đương với việc mở bảng điều khiển theo cách thủ công trong trình duyệt và xem các lỗi JS khi tải trang. Tôi có thể nắm bắt điều này thông qua watir-webdriver và log/error on?Có thể watir-webdriver nắm bắt các lỗi giao diện điều khiển không?
Trả lời
Khi sử dụng trình điều khiển web-wat kết hợp với Dưa chuột, các lỗi, nếu có, xuất ra một tệp html được định dạng rất tốt và bao gồm các lỗi trình điều khiển webir.
Điều này có thể được thực hiện bằng cách thêm cờ sau để cấu hình mặc định của bạn trong cucumber.yml:
--color --format pretty --format html -o results.html
Thông tin thêm về tập tin này here. Dưới đây là một số background on Cucumber.
Tuy nhiên, nếu bạn đang sử dụng chỉ watir-webdriver từ giao diện điều khiển, bạn có thể chuyển hướng lỗi watir-webdriver vào một tập tin bằng cách làm như sau:
$ ruby your_watir_script.rb 2> watir_debug.log #watir outputs errors as stderr
Trong hầu hết các trường hợp, nếu một cái gì đó trong watir thất bại (ví dụ như một phần tử không thể tìm thấy) thì mọi thứ sau đó cũng sẽ thất bại, đó là lý do tại sao nó có ích để có một cái gì đó như Cucumber lái tự động hóa của bạn trên cơ sở kịch bản.
Nếu nó sẽ rất hữu ích cho một ai đó - giải pháp này nên làm việc:
def check_console_log
console_log = @browser.driver.manage.logs.get(:browser)
if console_log != nil
raise(console_log)
end
end
Bạn có chắc chắn điều này đúng không? Tôi không thấy 'get_log' trong tài liệu? –
Chắc chắn. Bây giờ tôi đang sử dụng chức năng này trong dự án của tôi, sau khi bước không thành công tôi đang kiểm tra nhật ký giao diện điều khiển và ghi tệp nhật ký. Phương pháp này được mô tả trong _module Selenium_ _module WebDriver_ _module Remote_ 'def getLog (loại) data = execute: getLog, {},: type => type.to_s Mảng (dữ liệu) .map do | l | LogEntry.new l.fetch ('level'), l.fetch ('dấu thời gian'), l.fetch ('message') kết thúc end' – Kirikami
tôi dựa trên giải pháp của tôi trên Kirikami's answer, không có dưa chuột cần thiết. Cách tiếp cận này chỉ in bảng điều khiển javascript Errors
(không có cảnh báo, thông tin, nhật ký hoặc gỡ lỗi).
def print_js_errors
log = @browser.driver.manage.logs.get(:browser)
errors = log.select{ |entry| entry.level.eql? 'SEVERE' }
if errors.count > 0
javascript_errors = errors.map(&:message).join("\n")
raise javascript_errors
end
end
Sau đó, nếu bạn đang sử dụng rspec, bạn có thể làm điều này:
RSpec.configure do |config|
config.after :each do
print_js_errors
end
end
Ưu điểm:
- Bạn vẫn nhận được kết quả bình thường RSpec cho bài kiểm tra mà
Pass
- Bạn vẫn nhận được bất kỳ thông báo lỗi nào được ném bởi watir-webdriver cho các bài kiểm tra
Fail
(ví dụ: thời gian chờ, phần tử không tìm thấy, v.v.) - Khi một lỗi javascript được ném ra, nó được thêm vào RSpec kết quả kiểm tra đầu ra
Nhược điểm:
- Hai dòng đầu tiên của
print_js_errors
được thực hiện sau mỗi bài kiểm tra
- 1. Có cách nào để bắt lỗi giao diện điều khiển Web không?
- 2. Có thể ngăn chặn 403 lỗi đăng nhập vào giao diện điều khiển web không?
- 3. Lỗi giao diện điều khiển lạ jboss
- 4. VKRoadTile? Lỗi giao diện điều khiển lạ
- 5. xUnit.net không bắt đầu giao diện điều khiển
- 6. Làm cách nào để nắm bắt ngoại lệ Control-C trong ứng dụng giao diện điều khiển Visual C++?
- 7. Có thể có tên lớp có thể nhấp trong giao diện điều khiển trong IntelliJ không?
- 8. System.Web.UI không có trong ứng dụng giao diện điều khiển?
- 9. Lỗi giao diện điều khiển của khung chơi 2.0
- 10. Không thể đọc lỗi JavaScript trong giao diện điều khiển Firebug trước khi tải lại trang
- 11. Trình tạo greenDAO cung cấp lỗi giao diện điều khiển không có ý nghĩa
- 12. Có thể sử dụng HttpBrowserCapabilities từ một ứng dụng giao diện điều khiển C# không?
- 13. Có đầu ra của một ứng dụng giao diện điều khiển trong Visual Studio thay vì giao diện điều khiển
- 14. Eclipse hiển thị lỗi nhưng không đưa ra lỗi trong giao diện điều khiển
- 15. Cách tìm giao diện điều khiển ActiveX?
- 16. Chạy các lệnh Rails bên ngoài giao diện điều khiển
- 17. Có thể giả mạo cửa sổ giao diện điều khiển api không?
- 18. tuyến nghiệm trong giao diện điều khiển
- 19. Có pluggable trực tuyến giao diện điều khiển python?
- 20. Tôi có thể sử dụng mvc mini profiler trong ứng dụng giao diện điều khiển không?
- 21. Có phải thử nắm bắt như xử lý lỗi có thể trong ASP Classic không?
- 22. Ứng dụng Giao diện điều khiển .Net không hiển thị Bảng điều khiển
- 23. Tắt ghi nhật ký giao diện điều khiển cho các đối tượng cụ thể
- 24. Làm thế nào để nắm bắt các yêu cầu XMLHTTP trong điều khiển Webbrowser?
- 25. powerhell và đầu ra ứng dụng giao diện điều khiển
- 26. Có cách nào trong JavaScript để nghe sự kiện giao diện điều khiển không?
- 27. giao diện điều khiển đường ray với wirble?
- 28. Cách nắm bắt "Lỗi OpenCV" trong Python
- 29. libpcap không thể nắm bắt các đoạn IP
- 30. jQuery giao diện điều khiển lỗi: $ .effect (này) không phải là một chức năng
Vì vậy, những lỗi nào là những lỗi mà bản thân watir ném chính xác? Có watir đã bắt lỗi Javascript từ trang và đăng nhập chúng? – negativebase