Score:0

ฉันจะติดตั้งไดรเวอร์ Microsoft Edge สำหรับการทดสอบซีลีเนียมใน Python 3 ได้อย่างไร

ธง cn

เรากำลังพยายามตั้งค่าสภาพแวดล้อมการทดสอบการทำงานอัตโนมัติสำหรับเว็บแอปพลิเคชัน เว็บแอปพลิเคชันนี้จะโฮสต์บนเซิร์ฟเวอร์ Ubuntu ในสภาพแวดล้อม QA เรากำลังพยายามทำการทดสอบอัตโนมัติ

ข้อมูลด้านสิ่งแวดล้อมมีดังนี้:

  • ระบบปฏิบัติการ: Ubuntu 20.04 และ/หรือ 21.04
  • ภาษาโปรแกรมที่ใช้: Python3 (3.8.10)
  • เครื่องมืออัตโนมัติ: ซีลีเนียม
  • เบราว์เซอร์ที่ต้องการ: MS Edge

ความยืดหยุ่น:

เราสามารถใช้ Python หรือ Ubuntu เวอร์ชันอื่นเพื่อให้ทำงานได้ แต่เนื่องจาก MS Edge เป็นเบราว์เซอร์ที่ลูกค้าต้องการซึ่งไม่สามารถแทนที่ด้วย Firefox หรือเบราว์เซอร์อื่นที่มีอยู่ได้ แม้ว่าเราจะสามารถใช้ edge รุ่นต่างๆ ได้ ถ้ามันใช้งานได้ และ เราสามารถทดสอบสิ่งเดียวกันในเบราว์เซอร์ Chrome ได้สำเร็จ. เราสามารถใช้ Linux Distros ที่แตกต่างกันได้ตราบเท่าที่เป็นเวอร์ชันที่เสถียร

สิ่งที่เราได้ลองไปแล้ว?

พยายามทำตามคำแนะนำเดียวกันกับที่เราทำกับ Chrome สำหรับการติดตั้งไดรเวอร์ Chrome เราทำตาม 'https://www.thenerdlife.com/blog/how-to-install-chromedriver-on-ubuntu/' ดังนั้นเราจึงทำเช่นเดียวกันกับ edge และแทนที่ "chromedriver" ด้วย "msedgedriver" ในสคริปต์

เราได้ติดตั้ง MS Edge (DEV v93.0.933.1) บน Ubuntu 20.04 สำหรับ webdriver เราพบใน 'https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/' และคัดลอกไฟล์ไปยังตำแหน่งเดียวกับไฟล์ทดสอบ python

เรายังพยายามเปลี่ยนชื่อ "msedgedriver" เป็น "MicrosoftWebDriver.exe" (ไฟล์ที่วางด้วยโปรแกรม python) มาจากพื้นหลังของ windows สิ่งนี้มักจะใช้งานได้

โปรแกรมไพธอน

จาก webdriver นำเข้าซีลีเนียม
ไดรเวอร์ = webdriver.Edge()
driver.get('https://www.google.com/')
> Traceback (การโทรครั้งล่าสุดล่าสุด):
  ไฟล์ "/home/devang/.local/lib/python3.8/site-packages/selenium/webdriver/common/service.py" บรรทัดที่ 72 ในตอนเริ่มต้น
    self.process = subprocess.Popen(cmd, env=self.env,
  ไฟล์ "/usr/lib/python3.8/subprocess.py", บรรทัด 858 ใน __init__
    self._execute_child(args, เรียกใช้งานได้, preexec_fn, close_fds,
  ไฟล์ "/usr/lib/python3.8/subprocess.py", บรรทัด 1704 ใน _execute_child
    เพิ่ม child_exception_type (errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว: 'MicrosoftWebDriver.exe'
ในระหว่างการจัดการข้อยกเว้นข้างต้น มีข้อยกเว้นอื่นเกิดขึ้น:
Traceback (การโทรครั้งล่าสุดล่าสุด):
  ไฟล์ "/home/devang/GitHub/AutomationSampleTest/ieEdgeBrowse.py" บรรทัดที่ 3 ใน <โมดูล>
    ไดรเวอร์ = webdriver.Edge()
  ไฟล์ "/home/devang/.local/lib/python3.8/site-packages/selenium/webdriver/edge/webdriver.py" บรรทัดที่ 56 ใน __init__
    self.edge_service.start()
  ไฟล์ "/home/devang/.local/lib/python3.8/site-packages/selenium/webdriver/common/service.py" บรรทัดที่ 81 ในตอนเริ่มต้น
    เพิ่ม WebDriverException (
selenium.common.exceptions.WebDriverException: ข้อความ: ไฟล์ปฏิบัติการ 'MicrosoftWebDriver.exe' ต้องอยู่ใน PATH โปรดดาวน์โหลดจาก http://go.microsoft.com/fwlink/?LinkId=619687

แก้ไข ลองใช้รหัสต่อไปนี้เพื่อส่งตำแหน่งไฟล์ไดรเวอร์:

จาก webdriver นำเข้าซีลีเนียม
จากตัวเลือกการนำเข้า selenium.webdriver.edge.options
ตัวเลือก = webdriver.EdgeOptions()
option.use_chromium = จริง
options.binary_location = "/home/devang/GitHub/AutomationSampleTest/msedgedriver"
ไดรเวอร์ = webdriver.Edge (ตัวเลือก = ตัวเลือก)
driver.get('https://www.google.com/') 

สำหรับรหัสด้านบนมันแสดงข้อผิดพลาดที่แตกต่างกัน:

Traceback (การโทรครั้งล่าสุดล่าสุด):
  ไฟล์ "/home/devang/GitHub/AutomationSampleTest/ieEdgeBrowse.py" บรรทัดที่ 3 ใน <โมดูล>
    ตัวเลือก = webdriver.EdgeOptions()
AttributeError: โมดูล 'selenium.webdriver' ไม่มีแอตทริบิวต์ 'EdgeOptions'

คำถาม:

เป็นไปได้ไหมที่จะทำการทดสอบอัตโนมัติสำหรับ MS Edge ใน Ubuntu โดยใช้ Python3 และ Selenium

ถ้าใช่ แล้วยังไง? โปรดแยกย่อยออกเป็นขั้นตอนง่ายๆ เล็กๆ เพื่อปฏิบัติตามเนื่องจากฉันเป็นผู้ใช้ Ubuntu รายใหม่

muru avatar
us flag
คุณลองตั้งค่าพาธไปยังไฟล์ `msedgedriver` โดยใช้ `options.binary_location` (เช่นใน https://docs.microsoft.com/en-us/microsoft-edge/webdriver-chromium/?tabs=python#choose- เฉพาะเบราว์เซอร์ไบนารีโครเมียมเท่านั้น)? ไฟล์ปฏิบัติการได้หรือไม่
Devang avatar
cn flag
@muru ขั้นตอนนี้ใช้สำหรับ windows OS ฉันจะทำเช่นเดียวกันกับ Ubuntu ได้อย่างไร ฉันได้กล่าวถึงลิงค์จากที่ฉันดาวน์โหลดด้วย แต่ระบบปฏิบัติการไม่ใช่ .exe เนื่องจากเป็นระบบปฏิบัติการสำหรับลินุกซ์
muru avatar
us flag
บางอย่างเช่น `options.binary_location = "/path/to/msedgedriver"` น่าจะเป็น
Devang avatar
cn flag
ฉันได้อัปเดตรหัสและข้อผิดพลาดที่เป็นปัญหา "msedgedriver" คือไฟล์ ไฟล์นี้ไม่มีนามสกุล ฉันคิดว่านั่นเป็นวิธีที่ Ubuntu ทำงาน ... อีกครั้ง ฉันยังดำเนินการคำสั่งนี้ที่กล่าวถึงในลิงก์ @muru ที่ให้ไว้ "pip install msedge-selenium-tools selenium==3.141"

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา