ฉันจะเรียกใช้ Firefox บน CentOS โดยไม่แสดงผลได้อย่างไร [ปิด]


16

ฉันพยายามเรียกใช้เบราว์เซอร์ Firefox GUI บนเซิร์ฟเวอร์ CentOS ที่ไม่มีหัวเพื่อทำการทดสอบทางเว็บ

ฉันไม่จำเป็นต้องเห็นผลลัพธ์กราฟิกเพราะฉันใช้Selenium server APIเพื่อควบคุมอินพุตของเบราว์เซอร์และตรวจสอบผลลัพธ์

การตั้งค่าได้รับการทดสอบบนคอมพิวเตอร์ Mac เดสก์ท็อปสำเร็จแล้ว อย่างไรก็ตามมันล้มเหลวในการทำงานบนเซิร์ฟเวอร์ VPS CentOS ที่ไม่มีหัวขาดโดยมีข้อความต่อไปนี้ "ข้อผิดพลาด: ไม่ได้ระบุจอแสดงผล" (ซึ่งเหมาะสมแล้วเนื่องจากเป็นเพียงเซิร์ฟเวอร์ที่นั่งอยู่บนชั้นวางในบางแห่ง)

ฉันจะทำให้ Firefox ทำงานโดยไม่แสดงผลได้อย่างไรดังนั้นซีลีเนียมจะสามารถโต้ตอบกับมันได้ หรือ - ขยายวงกว้างขึ้น - ผู้คนจะเรียกใช้แอปพลิเคชันเฉพาะ GUI บนเซิร์ฟเวอร์ Linux ได้อย่างไรเมื่อไม่มีจอแสดงผล

ฉันสังเกตเห็นว่า Firefox มีตัวเลือกบรรทัดคำสั่งนี้:

X11 options
  --display=DISPLAY  X display to use

น่าเสียดายที่ฉันไม่รู้อะไรเกี่ยวกับ X11 หรือจอแสดงผลภายใต้ CentOS ดังนั้นฉันจึงไม่รู้ว่าจะระบุอะไรในบรรทัดคำสั่งหรือหากนี่จะช่วยได้


4
ฉันคิดว่ามันแปลกมากที่คำถามที่ติดดาว 13 ครั้งถูกปิดเนื่องจาก "มีการแปลมากเกินไป"
harshath.jr

1
ว่าฉันมีปัญหาที่คล้ายกันและทั้งคำถามและคำตอบมีประโยชน์กับฉัน ควรเปิดใหม่อย่างแน่นอนในกรณีที่มีคนพบวิธีแก้ไขปัญหาอื่น
Marek Rost

คำตอบ:


18

ใช้ Xvfb มันให้เซิร์ฟเวอร์ X ที่ไม่ต้องการการเชื่อมต่อกับจอแสดงผลจริง

(ดังนั้นใน CentOS คุณต้องทำอะไรเช่น "yum install xorg-x11-server-Xvfb")

จากนั้นคุณสามารถเริ่มต้นได้ที่หน้าจอ ": 1" ด้วยคำสั่ง "/ path / on / ซึ่ง / ติดตั้ง / Xvfb: 1-screen 0 1024x768x24 &" สิ่งนี้จะสร้างหน้าจอที่มีความละเอียด 1027x768 และความลึก 24 การใช้ "&" จะทำให้คำสั่งดำเนินการในพื้นหลัง

ก่อนที่จะเปิด Firefox คุณจะต้องทำให้สามารถเข้าถึงหน้าจอซึ่งทำได้โดยใช้คำสั่งส่งออก - เช่น "export DISPLAY =: 1" โดยชี้ไปที่โฮสต์ที่เหมาะสม


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

โดยวิธี - ฉันจะ "ปิด" แสดง Xvfb เมื่อฉันทำทุกอย่างได้อย่างไร
Eric

คุณควรจะสามารถฆ่ากระบวนการ หากคุณต้องการมีความซับซ้อนมากขึ้นคุณสามารถดูการตั้งค่าสคริปต์เริ่ม / หยุด (ถ้าแพ็คเกจยังไม่ได้ให้มันอาจ: ดูใน /etc/init.d สำหรับสคริปต์ xvfb)
cjc

1
เข้าใจแล้วขอบคุณ ฉันโพสต์คำถามติดตามผลเกี่ยวกับข้อมูล / ข้อความแสดงข้อผิดพลาดที่ฉันเห็นในกรณีที่คุณกำลังมองหาจุดชื่อเสียงเพิ่มเติม :-) serverfault.com/questions/363914//
เอริค

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