11

Trong khi tìm kiếm bất kỳ ràng buộc ngôn ngữ hoàn toàn chức năng cho Selenium2/WebDriver, tôi đi qua một kho lưu trữ cho các ràng buộc Haskell cho Selenium RC nhưng không cho Selenium2/WebDriver.Bất kỳ ràng buộc ngôn ngữ thuần túy nào có sẵn cho Selenium2/WebDriver?

Tôi quan tâm đến việc cảm thấy thoải mái hơn với các ý tưởng về ngôn ngữ chức năng trong khi gắn bó với Selenium2, nếu có thể. Tôi đã chơi với Haskell trong một tháng hoặc lâu hơn và hiểu rằng Haskell là một ngôn ngữ chức năng thuần túy nên tự hỏi liệu họ có bất kỳ ràng buộc nào đối với Selenium2 hay không. Nếu không, bạn có thể đề xuất bất kỳ ràng buộc ngôn ngữ theo hướng chức năng nào khác cho Selenium2 không?

+0

Xem thêm: [gói selen] (http: //hackage.haskell .org/packages/archive/selenium/0.2.3/doc/html/Test-Selenium-Server.html) (Selen 1, không phải 2). Dường như tất cả những ràng buộc thực sự làm là dịch một lệnh Selenium thành một String, và gửi nó đến một máy chủ Selenium. –

+0

Cảm ơn bạn đã xác nhận lại bit liên kết Selenium1. Sẽ có một cái nhìn sâu hơn về các hoạt động của các ràng buộc này. – Ziran

Trả lời

2

Tôi nghĩ lý do tại sao ràng buộc ngôn ngữ hoàn toàn chức năng bị thiếu là Selenium/WebDriver chủ yếu được sử dụng bởi QA/Testers và sẽ khó cho chúng lập trình theo ngôn ngữ Haskell hoặc ngôn ngữ chức năng khác.

Nhưng bạn muốn lập trình với WebDriver theo kiểu chức năng, bạn có thể sử dụng một số ngôn ngữ dựa trên JVM chẳng hạn như Scala hoặc clojure.

+0

Cảm ơn, tôi sẽ xem xét các ngôn ngữ đó. – Ziran

+0

Tôi không hiểu tại sao ML, Haskell, OCaML, hoặc bất kỳ ngôn ngữ chức năng nào khác "sẽ khó cho [QA/Testers] cho chương trình." Haskell, đặc biệt, đã có một thư viện, QuickCheck, để tự động tạo ra các trường hợp thử nghiệm cho các chương trình của bạn. Để đầu nó đi, QuickCheck chính nó được viết bằng Haskell. Tôi sẽ thấy nó hợp lý hơn khi WebDriver thiếu các ràng buộc ngôn ngữ chức năng, đơn giản vì các ngôn ngữ như vậy không phổ biến như các ngôn ngữ C (C, C++, Java, PHP, C#). – BMeph

5

Mặc dù dự án hỗ trợ .NET, Java, Ruby và Python ra khỏi hộp, nhóm Selenium WebDriver đã giúp bạn dễ dàng tạo ra các ràng buộc cho hầu hết mọi ngôn ngữ mà bạn quan tâm. Hầu hết các trình điều khiển hiện sử dụng giao thức dây JSON-over-HTTP, các lệnh trong số đó được ghi lại trong project wiki. Miễn là bất kỳ ngôn ngữ nào bạn đang sử dụng đều có thư viện máy khách HTTP và thư viện phân tích cú pháp JSON, bạn có thể tạo các ràng buộc của riêng bạn một cách dễ dàng. Ngôn ngữ dựa trên JVM không cần thiết.

9

Câu trả lời là hơi muộn, nhưng tôi đã phát hành một khách hàng Haskell cho WebDriver trên Hackage rằng bạn có thể quan tâm đến: http://hackage.haskell.org/package/webdriver

+0

Upvote! Một thư viện tuyệt vời nhưng nó có thể sử dụng một bản cập nhật: https://github.com/kallisti-dev/hs-webdriver/issues/60 –