2011-06-13 36 views
20

này cảm thấy như nó nên được khá dễ dàng nhưng tôi không thể tìm thấy tài liệu về cách để làm điều này:Cách gửi "Ctrl + c" trong Sikuli?

Tôi chỉ muốn Sikuli gõ Ctrl +C để sao chép văn bản vào clipboard.

type(KEY_CTRL+'c') không hoạt động và không hoạt động type(KEY_CTRL,'c').

Mọi đề xuất?

Trả lời

20

Hãy thử sử dụng type("c",KEY_CTRL) để thay thế.

Tôi đã viết một kịch bản đơn giản, gõ một dòng trong notepad, nhấp đúp vào nó để đánh dấu nó và sau đó ctrl + x ctrl + v nó vào tài liệu một lần nữa. Hoạt động tuyệt vời.

openApp("notepad.exe") 

find("textfield.png") 
type("Some text") 
doubleClick("theText.png") 

type("x", KEY_CTRL) 

click("theTextField.png") 
type("v",KEY_CTRL) 
+1

Tức là, (KEY_CTRL, 'c') không hoạt động nhưng ('c', KEY_CTRL), hãy tìm hình! –

+2

[Không được chấp nhận] (http://doc.sikuli.org/keys.html) kể từ phiên bản X1.0-rc3. Xem [câu trả lời của @spearson] (http://stackoverflow.com/a/9526380/1086034). – willkil

17

Các tác phẩm sau đây trong 0.9 và các phiên bản mới hơn của

type('x', KeyModifier.CTRL) 
+2

Xin lưu ý rằng đây là trường hợp nhạy cảm! 'x' và 'c' làm việc, nhưng 'X' và 'C' thì không! –

5

Các đối tượng chính được xác định cho khá nhiều tất cả các phím bổ trợ và các phím num. Dù sao, nó sẽ giống như

keyDown (Key.CTRL) này
loại ('c')
KeyUp (Key.CTRL)

+0

Điều này hoạt động nhưng phải mất 3 dòng khi chỉ 1 dòng là đủ 'loại ('x', KeyModifier.CTRL)' –

+0

hữu ích của nó khi bạn muốn có một phần của chương trình của bạn xử lý đẩy xuống sửa đổi và một phần đi về vui vẻ của nó , không biết liệu nút đó có được nhấn hay không hiện tại là – Belfordz

0

Ngoài ra, hãy đảm bảo NUM_LOCK bị tắt. Nếu NUM_LOCK được bật, nó có thể làm bất cứ điều gì với KeyModifier.CTRL hoặc KeyModifier.SHIFT không đúng.

+0

Num Lock không tạo ra bất kỳ sự khác biệt nào đối với tôi. Bạn có thấy vấn đề này trên một nền tảng cụ thể không? –

+1

@JonathanBenn, tôi đã sử dụng Windows 7 Home Premium, Java 7 (cập nhật 65) và Sikuli 1.0.1. – autoKarma

0

Bạn có thể thử mã tiếp theo:

keyDown(Key.CTRL) 
type("c") 
keyUp(Key.CTRL) 
-1

Kịch bản cũng giống như tôi cần phải nhấn nói E quan trọng trong bàn phím của tôi sau khi kết thúc kiểm tra như thế nào để thêm video này trong kịch bản trong Sikuli IDE.

1

Như những người khác đã đề cập, sử dụng như sau:

type('c', Key.CTRL) # Copy command 

Một điểm đáng nói - làm không sử dụng ký tự chữ hoa, ví dụ:

type('C', Key.CTRL) # Does not copy, avoid this 

Tôi đã không nhìn vào mã nguồn Sikuli, nhưng dự đoán tốt nhất của tôi là nó ngầm gửi nó như là Shift+C, kết quả trong một lệnh khác hoàn toàn.

0

Tôi đã có yêu cầu tự động hóa nội dung flash. Đoạn mã sau đã làm việc cho tôi. Đây là những bước sau đây tôi AHD để thực hiện như một phần của tự động hóa:

  1. Nhập tên người dùng và mật khẩu
  2. Bấm vào Login Nút
  3. Bấm vào nút này sẽ hướng đến việc áp dụng

Thách thức mà tôi phải đối mặt là tập trung vào Tên người dùng và mật khẩu không có phần giữ chỗ. Do đó việc tập trung rất khó. Vì vậy, tôi đã sử dụng các phím CTRL để làm điều này.

Pattern appLogo = new Pattern("C:\\images\\appLogo.png"); 
    StringSelection userNameText = new StringSelection("username");    
    Toolkit.getDefaultToolkit().getSystemClipboard().setContents(userNameText, null);//Copy the text into the memory 
     Screen s = new Screen(); 
      s.find(appLogo); 
      s.click(appLogo); 
      s.type(Key.TAB);//I had to enter tab twice to focus on user name textbox 
      s.type(Key.TAB); 
      s.type("V",KeyModifier.CTRL); 

      StringSelection password = new StringSelection("password");    
      Toolkit.getDefaultToolkit().getSystemClipboard().setContents(password, null); 
      s.type(Key.TAB);//I had to enter tab twice to focus on user name textbox 
      s.type("V",KeyModifier.CTRL); 

      Pattern loginButton = new Pattern("C:\\images\\Login.png"); 
      s.find(loginButton); 
      s.doubleClick(loginButton); 
Các vấn đề liên quan