2012-05-01 26 views
16

Tôi đã tải xuống và cài đặt cửa sổ xem trước của người tiêu dùng 8 và tôi muốn tìm hiểu cách sử dụng API Tự động hóa giao diện người dùng để nhận dữ liệu từ các ứng dụng kiểu tàu điện ngầm.Làm cách nào để tự động hóa giao diện người dùng của các ứng dụng kiểu Metro?

Thông tin cơ bản: Tôi có nhiều thử nghiệm tự động sử dụng Microsoft UI Automation API's để tương tác với các ứng dụng. Các kịch bản được viết bằng IronRuby chống NET 4

Ban đầu, tôi chỉ đơn giản muốn kiểm tra xem trình đơn bắt đầu là có thể nhìn thấy (và nếu như vậy, hãy đóng nó)

According to Microsoft, giao diện người dùng bình thường tự động API nên có thể truy cập và kiểm soát các ứng dụng kiểu tàu điện ngầm, nhưng vấn đề là, tôi không thể tìm ra cách mã của tôi thực sự có thể truy cập vào giao diện người dùng của các ứng dụng metro? Cách xem dữ liệu tự động hóa giao diện người dùng thông thường của chúng tôi là sử dụng UISpy, tuy nhiên khi tôi chạy giao diện người dùng dưới cửa sổ 8 và hiển thị ứng dụng tàu điện ngầm, không có đề cập đến nó ... có vẻ như các ứng dụng metro (bao gồm màn hình bắt đầu) được gắn tường từ máy tính để bàn.

Nếu tôi không thể tìm thấy các ứng dụng tàu điện ngầm trong UISpy, làm cách nào tôi có thể tìm ID tự động hóa của mình là gì và làm cách nào để tìm chúng từ các tập lệnh thử nghiệm tự động của tôi?

+0

Để làm rõ - bạn đang sử dụng chồng XAML hay HTML5? Tôi không biết chắc chắn vì tôi đã không cố gắng làm tự động hóa giao diện người dùng trong một trong số này, nhưng tôi nghĩ rằng nó có thể là một chút khác nhau tùy thuộc vào sự lựa chọn của bạn. –

+0

http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.automation.aspx –

+0

Tôi chưa viết ứng dụng metro, ở giai đoạn này tôi chỉ muốn xem màn hình bắt đầu (và có thể một số ứng dụng được xây dựng trong các ứng dụng tàu điện ngầm như thư), mà tôi đoán là Xaml/C++ ?? –

Trả lời

1

Các ứng dụng WinRT (aka "Metro Style") chạy trong hộp cát. Bạn không thể xuyên qua các bức tường giữa các ứng dụng, bao gồm cả các ứng dụng Desktop. Điều này bao gồm cách ly mạng (bạn không thể tham chiếu trở lại localhost ví dụ ngoại trừ trong môi trường phát triển). Có một vài ngoại lệ đối với trường hợp này, chẳng hạn như liên hệ Chia sẻ và Tìm kiếm, cho phép các loại tương tác rất cụ thể giữa các ứng dụng.

Đây là hộp cát ngăn cản UISpy nhìn thấy ứng dụng WinRT đang chạy trong nền. Tôi không chắc làm thế nào UISpy có thể làm việc xung quanh vấn đề này mà không có một số loại môi trường phát triển ngoại lệ cho sandbox (tương tự như ngoại lệ cách ly mạng) mà không có sẵn trong bản xem trước của người tiêu dùng.

Tôi cũng không biết bất kỳ thông báo nào về thời điểm/nếu API giao diện người dùng tự động hóa sẽ được hỗ trợ cho các ứng dụng WinRT tại thời điểm này.

6

Một vài nguồn lực vào việc tự động hóa giao diện người dùng trong đó hoạt động trong các ứng dụng phong cách Metro:

  • Đây là một sample chứng minh nó.
  • Đây là số blog post giải thích.
  • Đây là một forum thread về chủ đề này.

    Không có ứng dụng nào ngừng tự động hóa giao diện người dùng truyền thống hoạt động chính xác. Bạn có thể phải tải các công cụ được cập nhật để xem các ứng dụng kiểu Metro. Một số tàu có Bản xem trước người tiêu dùng. Tìm kiếm tests.exe.

+2

Bằng cách này, inspect.exe có thể được tìm thấy trên máy RTM win8 trong c: \ program files (x86) \ Windows Kits \ 8.0 \ bin \ x86 –

2

Công cụ tự động hóa giao diện người dùng có thể tự động hóa ứng dụng Metro. Kiểm tra RIATest chẳng hạn.

Phát biểu từ phiên bản 6.0 một số tính năng trong RIATest được đặc biệt nhắm vào tàu điện ngầm tự động hóa ứng dụng phong cách, đặc biệt là:

  • Khả năng ở lại trên đầu trang của Metro UI cho phép bạn đồng thời thấy ứng dụng Metro của bạn và RIATest IDE và giảm thiểu chuyển đổi từ màn hình Desktop sang Metro khi tự động hóa ứng dụng Metro.

  • Ghi lại các tác vụ được thực hiện trên các phần tử GUI của Windows (bao gồm cả GUI của Metro). Máy ghi phân tích mã kịch bản của bạn và sử dụng lại các tên biến của bạn để tạo các kịch bản được ghi rõ ràng hơn tương tự như cách bạn sẽ viết mã tự động một tập lệnh tự động hóa.

  • Giải pháp thay thế liền mạch cho bugs like this trong Windows UI Tự động hóa triển khai trong giao diện người dùng của Metro.

Tuyên bố từ chối trách nhiệm: Tôi làm việc cho Cogitek, công ty RIATest.

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