Điểm:0

Làm cách nào để tôi cài đặt trình điều khiển Microsoft Edge để thử nghiệm Selenium trong Python 3?

lá cờ cn

Chúng tôi đang cố gắng thiết lập môi trường thử nghiệm tự động hóa cho ứng dụng web. Ứng dụng web này sẽ được lưu trữ trên máy chủ Ubuntu. Trong môi trường QA, chúng tôi đang cố gắng thực hiện kiểm thử tự động.

Thông tin về môi trường như sau:

  • Hệ điều hành: Ubuntu 20.04 và/hoặc 21.04
  • Ngôn ngữ lập trình được sử dụng: Python3 (3.8.10)
  • Công cụ tự động hóa: Selenium
  • Trình duyệt mong muốn: MS Edge

Uyển chuyển:

Chúng tôi có thể sử dụng phiên bản khác của Python hoặc Ubuntu để làm việc này, nhưng vì MS Edge là trình duyệt ưa thích của khách hàng nên không thể thay thế bằng Firefox hoặc trình duyệt có sẵn khác. Mặc dù chúng ta có thể sử dụng phiên bản khác của edge nếu nó hoạt động. Và chúng tôi có thể thử nghiệm thành công tương tự trong trình duyệt chrome. Chúng ta có thể sử dụng các Linux Distro khác nhau miễn là phiên bản ổn định.

Những gì chúng tôi đã thử?

Cũng đã cố gắng làm theo hướng dẫn tương tự như chúng tôi đã làm cho chrome. Để cài đặt trình điều khiển chrome, chúng tôi đã theo dõi 'https://www.thenerdlife.com/blog/how-to-install-chromedriver-on-ubuntu/'. Vì vậy, chúng tôi đã làm tương tự cho edge và thay thế "chromedriver" bằng "msedgedriver" trong tập lệnh.

Chúng tôi đã cài đặt MS Edge (DEV v93.0.933.1) trên Ubuntu 20.04. Đối với webdriver, chúng tôi đã tìm thấy nó trên 'https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/' và sao chép tệp vào cùng một vị trí với tệp thử nghiệm python.

Chúng tôi cũng đã thử đổi tên "msedgedriver" thành "MicrosoftWebDriver.exe" (tệp được đặt bằng chương trình python). Đến từ nền cửa sổ, điều này thường hoạt động.

chương trình Python

từ Selenium nhập webdriver
trình điều khiển = webdriver.Edge()
driver.get('https://www.google.com/')
> Traceback (cuộc gọi gần đây nhất cuối cùng):
  Tệp "/home/devang/.local/lib/python3.8/site-packages/Selenium/webdriver/common/service.py", dòng 72, bắt đầu
    self. process = sub process.Popen(cmd, env=self.env,
  Tệp "/usr/lib/python3.8/sub process.py", dòng 858, trong __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  Tệp "/usr/lib/python3.8/sub process.py", dòng 1704, trong _execute_child
    tăng child_Exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] Không có tệp hoặc thư mục như vậy: 'MicrosoftWebDriver.exe'
Trong quá trình xử lý ngoại lệ trên, một ngoại lệ khác đã xảy ra:
Traceback (cuộc gọi gần đây nhất cuối cùng):
  Tệp "/home/devang/GitHub/AutomationSampleTest/ieEdgeBrowse.py", dòng 3, trong <module>
    trình điều khiển = webdriver.Edge()
  Tệp "/home/devang/.local/lib/python3.8/site-packages/Selenium/webdriver/edge/webdriver.py", dòng 56, trong __init__
    self.edge_service.start()
  Tệp "/home/devang/.local/lib/python3.8/site-packages/Selenium/webdriver/common/service.py", dòng 81, bắt đầu
    tăng WebDriverException (
Selenium.common.Exceptions.WebDriverException: Thông báo: Tệp thực thi 'MicrosoftWebDriver.exe' cần phải ở dạng PATH. Vui lòng tải xuống từ http://go.microsoft.com/fwlink/?LinkId=619687

CHỈNH SỬA Cũng đã thử đoạn mã sau để chuyển vị trí tệp trình điều khiển:

từ Selenium nhập webdriver
từ selenium.webdriver.edge.options nhập Tùy chọn
tùy chọn = webdriver.EdgeOptions()
options.use_chromium=True
options.binary_location = "/home/devang/GitHub/AutomationSampleTest/msedgedriver"
trình điều khiển = webdriver.Edge (tùy chọn = tùy chọn)
driver.get('https://www.google.com/') 

Đối với đoạn mã trên, nó đang đưa ra một lỗi khác:

Traceback (cuộc gọi gần đây nhất cuối cùng):
  Tệp "/home/devang/GitHub/AutomationSampleTest/ieEdgeBrowse.py", dòng 3, trong <module>
    tùy chọn = webdriver.EdgeOptions()
AttributionError: mô-đun 'selenium.webdriver' không có thuộc tính 'EdgeOptions'

Câu hỏi:

Thậm chí có thể thực hiện kiểm tra tự động cho MS Edge trong Ubuntu bằng Python3 và Selenium không?

Nếu có thì làm thế nào? Vui lòng chia nhỏ nó thành các bước nhỏ dễ thực hiện vì tôi là người dùng Ubuntu mới.

muru avatar
lá cờ us
Bạn đã thử đặt đường dẫn đến tệp `msedgedriver` bằng cách sử dụng `options.binary_location` (như trong https://docs.microsoft.com/en-us/microsoft-edge/webdriver-chromium/?tabs=python#choose- cụ thể-trình duyệt-nhị phân-chỉ crom)? Tập tin có thể thực thi được không?
Devang avatar
lá cờ cn
@muru Bước này dành cho hệ điều hành windows. Làm cách nào để tôi làm điều tương tự cho Ubuntu? Tôi cũng đã đề cập đến liên kết từ nơi tôi đã tải xuống. Nhưng nó không phải là .exe, vì đây là dành cho linux.
muru avatar
lá cờ us
Có lẽ là một cái gì đó giống như `options.binary_location = "/path/to/msedgedriver"`.
Devang avatar
lá cờ cn
Tôi đã cập nhật mã và nó đang gây ra lỗi. "msedgedriver" là tệp. Tập tin này không có bất kỳ phần mở rộng nào. Tôi cho rằng đó là cách Ubuntu hoạt động... Một lần nữa, tôi cũng đã thực thi lệnh này được đề cập trong liên kết mà @muru cung cấp "pip install msedge-selenium-tools selenium==3.141"

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.