การโต้ตอบอัตโนมัติกับ Google Chrome


9

เอาล่ะ SU ฉันมีความสนุกที่จะแตก

ฉันมีการตั้งค่าหน้าจอทั้งหมด 8 จอโดยทั้งหมดติดอยู่ใน G5 เนื้อเดียวที่ใช้ Snow Leopard (ใช่การ์ดกราฟิก 4 ตัวความกว้าง 15,000 พิกเซล) ฉันกำลังตั้งค่าการสาธิตซึ่งใช้หน้าต่างเบราว์เซอร์ Chrome แบบเต็มหน้าจอ 8 ตัวแต่ละอันชี้ไปที่ URL อื่น มันเป็นความเจ็บปวดในตูดที่จะทำสิ่งนี้ด้วยตนเองทุกครั้งที่รีสตาร์ทคอมพิวเตอร์

เมื่อตั้งค่านี้ฉันต้องการเขียนสคริปต์โดยอัตโนมัติ:

  1. เปิดหน้าต่าง Chrome ไปที่หน้าจอเฉพาะ
  2. ชี้หน้าต่างนั้นไปยัง URL เฉพาะ
  3. หน้าต่างเต็มหน้าจอ (command-F เป็นแป้นพิมพ์ลัด)

ฉันไม่ได้ใช้ระบบออโตเมติกและฉันไม่คุ้นเคยกับการเขียนสคริปต์เชลล์โดยเฉพาะ แต่ฉันสงสัยว่ามีคำแนะนำที่แปลกใหม่จากฝูงชนหรือไม่

อัปเดต:แม้ว่าฉันจะต้องใช้ Automator สำหรับฟังก์ชั่นระดับสูงในที่สุดฉันก็หวังว่าจะมีวิธีเรียกสคริปต์จากบรรทัดคำสั่ง / สคริปต์ ฉันต้องการที่จะสามารถเปิดการสาธิตนี้จากระยะไกลหากจำเป็น


ฉันคิดว่า Automater เป็นสถานที่ที่เหมาะสำหรับการเริ่มต้นแม้ว่าฉันจะไม่ได้ใช้มันมากนัก ฉันเคยใช้ผลิตภัณฑ์ "Egg Plant Purple" ที่คุณอาจจะใช้สำหรับสิ่งนี้ - แม้ว่าฉันต้องการคิดว่ามีตัวเลือกที่ดีกว่านั้นมีอยู่
James T Snell

ฉันคิดว่าหน้าจอเฉพาะเป็นสิ่งที่ยากที่จะบรรลุ
slhck

คำตอบ:


8

ฉันคิดออก!

Applescript เป็นแหล่งข้อมูลที่ดีเยี่ยมและ chrome มีพจนานุกรม (คุณสามารถดูได้ใน "Applescript Editor" จากนั้นเลือก "Open Dictionary" และค้นหา Chrome ในรายการ)

รหัส:

set screenCount to 8
set screenWidth to 1950
set baseURL to "http://localhost:8000"

tell application "Google Chrome"
    activate
    repeat while window 1 exists
        close window 1
    end repeat
    repeat with x from 1 to screenCount

        set w to make new window with properties {bounds:{screenWidth * (x - 1), 500, 500 + screenWidth * (x - 1), 1000}}
        tell application "System Events" to keystroke "F" using {command down, shift down}
        set URL of active tab of w to (baseURL & "/" & "#" & (x - 1))

    end repeat
end tell

สคริปต์ทำสิ่งต่อไปนี้:

  1. เปิดใช้งาน Chrome (เปิดขึ้นมาหรือเปิดอยู่ทำให้เป็นการโฟกัส)
  2. ปิดหน้าต่างเบราว์เซอร์ที่เปิดอยู่
  3. สร้างหน้าต่างเบราว์เซอร์ [screenCount] เปิดได้ที่พิกัดเฉพาะ (สองคำแรกใน {bounds} คือ x, y ของมุมบนซ้ายคำสองคำที่สองใน {bounds} คือ x, y ของด้านล่าง ขวา)
  4. หลังจากที่เปิดแต่ละหน้าต่างเบราว์เซอร์ให้ส่งคำสั่ง "เต็มหน้าจอ" (Command + Shift + F)
  5. หลังจากแต่ละหน้าต่างเบราว์เซอร์เต็มหน้าจอให้ตั้ง URL ไปยังตำแหน่งที่ต้องการ

โปรดทราบว่า URL ของฉันเหมาะสมกับสูตรเฉพาะ (เช่นhttp: // localhost: 8000 / # 0 ) ดังนั้นจึงง่ายต่อการสร้างขึ้นแบบไดนามิก สำหรับผู้ที่มีความต้องการที่คล้ายกันแบบสุ่มคุณสามารถใช้สิ่งนี้เป็นจุดเริ่มต้น

สุดท้ายสำหรับข้อกำหนดของเทอร์มินัลคุณสามารถเรียกใช้ applescript บนเทอร์มินัลโดยใช้บรรทัดต่อไปนี้:

osascript [scriptname]

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.