Python mở và đóng trình duyệt
Trong một môi trường nhanh nhẹn, các nhà phát triển nhấn mạnh việc thúc đẩy các thay đổi một cách nhanh chóng. Với mọi thay đổi yêu cầu sửa đổi giao diện người dùng, họ cần chạy thử nghiệm trình duyệt chéo phù hợp. Mặc dù một dự án nhỏ có thể chọn kiểm thử thủ công, nhưng ngày càng có nhiều trình duyệt tạo ra trường hợp kiểm thử tự động Show
Với phạm vi ngày càng mở rộng của các ứng dụng web, cả về công nghệ và chức năng, kỳ vọng của người dùng đã tăng lên nhiều lần. Cứ sau vài tuần, các tính năng mới được thêm vào ứng dụng web để thu hút người dùng cao hơn. Để kiểm tra các tính năng này và đảm bảo rằng giao diện người dùng đang hoạt động tốt, cần phải kiểm tra tự động. Đối với những người thử nghiệm trên toàn thế giới, Selenium là lựa chọn đầu tiên để thực hiện các thử nghiệm tự động Selenium là một công cụ kiểm tra tự động mã nguồn mở hỗ trợ một số ngôn ngữ script như Python, C#, Java, Perl, Ruby, JavaScript, v.v. tùy thuộc vào ứng dụng được kiểm tra, người ta có thể chọn tập lệnh cho phù hợp Python là một trong những ngôn ngữ kịch bản phổ biến nhất, theo đề xuất của , trong thống kê bên dưới Bài đăng hướng dẫn này cung cấp hướng dẫn Selenium Python từng bước để thực hiện kiểm tra tự động hóa web Selenium cho phép bạn xác định các bài kiểm tra và tự động phát hiện kết quả của các bài kiểm tra này trên một trình duyệt được quyết định trước. Một bộ chức năng Selenium cho phép bạn tạo các tương tác từng bước với trang web và đánh giá phản ứng của trình duyệt đối với các thay đổi khác nhau. Sau đó, bạn có thể quyết định xem phản hồi của trình duyệt có phù hợp với những gì bạn mong đợi hay không Bài đăng này giả định rằng bạn chưa có kiến thức trước về Selenium. Tuy nhiên, cần có kiến thức cơ bản về các khái niệm front-end như DOM và quen thuộc với Python Điều kiện tiên quyết để chạy thử nghiệm Selenium với PythonCách dễ nhất để cài đặt Selenium trên môi trường Python là thông qua trình cài đặt pip pip install selenium Trong khi cài đặt Selenium làm cho chức năng có sẵn cho bạn, bạn cần trình điều khiển bổ sung để nó có thể giao tiếp với trình duyệt web đã chọn. Các liên kết tải xuống cho các trình điều khiển có sẵn ở đây. Chrome, Edge, Firefox và Safari. Trong phần còn lại của hướng dẫn này, chúng ta sẽ sử dụng Chromedriver. Theo liên kết cho trình duyệt bạn chọn và tải xuống trình điều khiển cho phiên bản tương thích Mọi người cũng đọc. Cách chạy thử nghiệm Selenium trên Chrome bằng ChromeDriver Nếu bạn chỉ định kiểm tra Selenium cục bộ, tải xuống gói và trình điều khiển là đủ. Tuy nhiên, nếu bạn muốn thiết lập Selenium trên một máy chủ từ xa, bạn cần phải cài đặt thêm Máy chủ Selenium. Selenium Server được viết bằng Java, và bạn cần có JRE 1. 6 trở lên để cài đặt nó trên máy chủ của bạn. Nó có sẵn trên trang tải xuống của Selenium Cách chạy thử nghiệm Selenium đầu tiên của bạn với Python. Ví dụKhi bạn đã hoàn thành phần điều kiện tiên quyết, bạn đã sẵn sàng bắt đầu bài kiểm tra đầu tiên của mình trong Selenium với ngôn ngữ lập trình Python 1. Đầu tiên nhập các lớp WebDriver và Keys từ Selenium from selenium import webdriver from selenium.webdriver.common.keys import Keys Lớp WebDriver sẽ kết nối bạn với một phiên bản của trình duyệt mà chúng tôi sẽ đề cập ngay sau đây. Lớp Phím cho phép bạn mô phỏng hành trình của các phím trên bàn phím, bao gồm các phím đặc biệt như “Shift” và “Return” 2. Tiếp theo, tạo một phiên bản Chrome với đường dẫn của trình điều khiển mà bạn đã tải xuống thông qua các trang web của trình duyệt tương ứng. Trong ví dụ này, chúng tôi giả định rằng trình điều khiển nằm trong cùng thư mục với tập lệnh Python mà bạn sẽ thực thi driver = webdriver.Chrome('./chromedriver') Nếu bạn đang thử nghiệm trên máy cục bộ của mình, thao tác này sẽ mở một phiên bản Chrome cục bộ. Lệnh này cho phép bạn thực hiện các kiểm tra trên nó cho đến khi bạn sử dụng. close() để kết thúc kết nối với trình duyệt Trong trường hợp, bạn muốn thử Kiểm tra cục bộ bằng cách sử dụng BrowserStack Automate của chúng tôi, hãy xem tài liệu này 3. Tiếp theo, sử dụng. phương thức get() của trình điều khiển để tải một trang web. Bạn cũng có thể tải một trang web phát triển cục bộ vì quá trình này tương đương với việc mở một cửa sổ Chrome trên máy cục bộ của bạn, nhập URL và nhấn Enter. Các. get() không chỉ bắt đầu tải một trang web mà còn đợi nó hiển thị hoàn toàn trước khi chuyển sang bước tiếp theo driver.get("https://www.python.org") 4. Khi trang tải thành công, bạn có thể sử dụng. thuộc tính tiêu đề để truy cập tiêu đề văn bản của trang web. Nếu bạn muốn kiểm tra xem tiêu đề có chứa một chuỗi con cụ thể hay không, bạn có thể sử dụng câu lệnh khẳng định hoặc câu lệnh if. Để đơn giản, chúng ta hãy in tiêu đề của trang print(driver.title) Đầu ra là văn bản sau Welcome to Python.org Nếu đang chạy thử nghiệm trên trình thông dịch Python, bạn nhận thấy rằng cửa sổ trình duyệt Chrome vẫn đang hoạt động. Ngoài ra, một thông báo trên Chrome cho biết hiện tại phần mềm tự động đang kiểm soát nó 5. Tiếp theo, hãy để chúng tôi gửi một truy vấn trong thanh tìm kiếm. Đầu tiên, chọn phần tử từ HTML DOM và nhập giá trị vào đó và gửi biểu mẫu bằng cách mô phỏng nhấn phím Return. Bạn có thể chọn phần tử bằng cách sử dụng lớp CSS, ID, thuộc tính tên của phần tử hoặc thậm chí là tên thẻ. Nếu bạn kiểm tra nguồn của thanh tìm kiếm truy vấn, bạn sẽ nhận thấy rằng thuộc tính tên của phần tử DOM này là “q”. Vì vậy, bạn có thể sử dụng các. phương thức find_element_by_name() như sau để chọn phần tử search_bar = driver.find_element_by_name("q") 6. Khi phần tử DOM được chọn, trước tiên bạn cần xóa nội dung của nó bằng cách sử dụng. clear(), hãy nhập một chuỗi làm giá trị của nó bằng cách sử dụng. send_keys() và cuối cùng, mô phỏng thao tác nhấn phím Return bằng Keys. TRỞ LẠI search_bar.clear() search_bar.send_keys("getting started with python") search_bar.send_keys(Keys.RETURN) Cũng đọc. Bạn muốn hiểu các trường hợp sử dụng khác của SendKeys trong Selenium? Bạn nhận thấy trong cửa sổ rằng những hành động này kích hoạt thay đổi trong URL với kết quả tìm kiếm trong cửa sổ. Để xác nhận URL hiện tại của cửa sổ, bạn có thể sử dụng lệnh sau ________số 8Chuỗi sau được hiển thị 'https://www.python.org/search/?q=getting+started+with+python&submit=' Để đóng phiên hiện tại, hãy sử dụng. phương thức đóng (). Nó cũng ngắt kết nối với trình duyệt from selenium import webdriver from selenium.webdriver.common.keys import Keys0 Trong ví dụ này, chúng ta đã xem xét các bước liên quan đến việc chạy thử nghiệm đầu tiên bằng Selenium và Python. Xin lưu ý rằng chúng tôi đã để cửa sổ mở trong tất cả các giai đoạn của quá trình kiểm tra, để đảm bảo bạn biết điều gì đang diễn ra trong nền khi bạn chạy từng lệnh Trong quy trình hoàn toàn tự động, bạn sẽ chạy nhiều thử nghiệm một cách tuần tự và do đó, có thể không xem được từng bước khi chúng diễn ra Chạy thử nghiệm Selenium Python miễn phí Để tóm tắt cuộc thảo luận, đây là thử nghiệm Selenium đầu tiên của bạn trên Python. Bạn có thể lưu nó trong tệp selenium_test. py và chạy python Selenium_test. py để chạy thử nghiệm from selenium import webdriver from selenium.webdriver.common.keys import Keys1 Điều hướng qua các phần tử HTML DOMBây giờ bạn đã chạy thành công thử nghiệm đầu tiên của mình trong Selenium với Python, chúng ta hãy xem xét các tùy chọn khác nhau để chọn các thành phần DOM và tương tác với chúng. Trong ví dụ này, chúng tôi đã chọn thanh tìm kiếm và truy vấn một chuỗi. Hãy để chúng tôi khám phá lựa chọn hơn nữa. Đây là HTML của thanh tìm kiếm from selenium import webdriver from selenium.webdriver.common.keys import Keys2 Trong ví dụ, chúng tôi đã sử dụng. phương thức find_element_by_name(), tìm kiếm tên thuộc tính trong thẻ HTML đầu vào. Chúng tôi cũng có thể tìm kiếm thuật ngữ này bằng các phương pháp khác
Mặc dù ID CSS là duy nhất cho mọi phần tử theo thiết kế, nhưng bạn có thể tìm thấy nhiều kết quả khi tìm kiếm qua tên lớp. Hơn nữa, khi bạn tìm kiếm qua đường dẫn DOM của phần tử, bạn có thể chắc chắn về những gì bạn đang tìm kiếm Bạn có biết không. Sự khác biệt giữa findElement và findElements? Điều hướng qua Windows và FramesỨng dụng web của bạn có thể yêu cầu bạn làm việc với nhiều cửa sổ và khung. Các trường hợp sử dụng phổ biến khi làm việc trên cửa sổ mới là đăng nhập mạng xã hội và tải lên tệp. Các. Phương thức switch_to_window() của trình điều khiển sẽ giúp bạn thay đổi cửa sổ đang hoạt động và thực hiện các hành động khác nhau trong cửa sổ mới. Mã chuyển tiêu điểm sang một cửa sổ mới là from selenium import webdriver from selenium.webdriver.common.keys import Keys3 Nếu giá trị không được lưu trữ trong thuộc tính đích, bạn có thể sử dụng tay cầm cửa sổ, xác định duy nhất tất cả các cửa sổ đang mở trong trình điều khiển của bạn. Để xem danh sách tất cả các tay cầm cửa sổ, hãy chạy như sau from selenium import webdriver from selenium.webdriver.common.keys import Keys4 Tương tự, bạn có thể chuyển tiêu điểm sang một khung trong cửa sổ thông qua. phương thức switch_to_frame(). Để quay lại cửa sổ chính sau khi hoàn thành các hành động có liên quan, hãy chạy lệnh sau from selenium import webdriver from selenium.webdriver.common.keys import Keys5 Lưu ý rằng tất cả các hành động trong phần này sẽ thay đổi trạng thái của trình điều khiển và không trả lại bất kỳ thứ gì. Do đó, chúng tôi không lưu trữ các giá trị trong một biến và thay vào đó gọi các phương thức Làm việc với thời gian nhàn rỗi trong khi kiểm traMặc dù chúng tôi đã xem xét các thử nghiệm khác nhau trong các ứng dụng web tĩnh, một ứng dụng một trang có thể yêu cầu bạn đợi một khoảng thời gian cụ thể cho đến khi bạn thực hiện một hành động Có hai loại chờ đợi trong Selenium. chờ đợi ngầm định và rõ ràng. Chờ rõ ràng khiến trình điều khiển của bạn đợi hoàn thành một hành động cụ thể (như tải nội dung bằng AJAX). Chờ đợi ngầm khiến trình điều khiển đợi trong một thời gian cụ thể Đối với thời gian chờ rõ ràng, bạn cần sử dụng khối lần thử cuối cùng vì nó có khả năng khiến bài kiểm tra của bạn bị kẹt trong trường hợp xấu nhất. Về cơ bản, bạn hướng dẫn người lái xe đợi một yếu tố nhất định trong một thời gian nhất định trước khi buông tay from selenium import webdriver from selenium.webdriver.common.keys import Keys6 Trước tiên, hãy sử dụng chức năng WebDriverWait() để yêu cầu trình điều khiển đợi trong khoảng thời gian năm giây. Sau đó, bạn kiểm tra phần tử mới được tải bằng cách sử dụng. phương thức hiện diện_of_element_location() của lớpexpected_conditions mà bạn có thể truy vấn thông qua By. TÔI. Bạn muốn hiểu thêm vềexpectedConditions trong Selenium? Trong một sự chờ đợi ngầm định, bạn cần sử dụng. phương thức implicitly_wait() của trình điều khiển và cung cấp số giây để trình điều khiển chờ from selenium import webdriver from selenium.webdriver.common.keys import Keys7 Cách tích hợp Selenium với Bài kiểm tra đơn vị PythonChúng ta hãy cố gắng hiểu cách tích hợp các bài kiểm tra Selenium vào các bài kiểm tra đơn vị Python. Với mục đích này, chúng tôi sẽ sử dụng mô-đun kiểm tra đơn vị trong Python from selenium import webdriver from selenium.webdriver.common.keys import Keys8 Trong ví dụ này, bạn cần thiết lập đối tượng trình điều khiển khi khởi tạo lớp kiểm tra đơn vị thông qua. Phương thức Chrome(). Trong thử nghiệm duy nhất mà chúng tôi chứng minh, cùng một văn bản được đặt trên thanh tìm kiếm và thay đổi kết quả trong URL được so sánh với URL đã thấy trước đó. Ngoài ra, bạn có thể viết một bài kiểm tra khác cho một trình duyệt khác và sử dụng lại chức năng tương tự Đọc thêm. Bắt đầu kiểm tra Selenium với Python. Tự động kiểm tra biểu mẫu đăng ký người dùng Cách chạy thử nghiệm Selenium bằng Python trên BrowserStackĐể chạy Selenium trên các thiết bị thực thông qua BrowserStack, trước tiên bạn cần đăng ký trên BrowserStack Mẹo chuyên nghiệp. Bạn muốn tìm hiểu sâu hơn về triển khai Selenium trên BrowserStack với các khóa học tương tác và bài tập trong phòng thí nghiệm miễn phí?Visit Test University Khi đăng nhập, hãy chọn “BrowserStack Automate” và đặt kết hợp trình duyệt-thiết bị mà bạn muốn chạy thử nghiệm. Sau đó, bạn được hiển thị mã mẫu để sao chép và chạy từ thiết bị đầu cuối của mình để chạy thử nghiệm from selenium import webdriver from selenium.webdriver.common.keys import Keys9 Thử kiểm tra Selenium từ xa với Python Chúng ta hãy dành một chút thời gian để xem sự khác biệt so với những gì chúng ta đã thảo luận cho đến nay trong bài viết này
Bạn có biết không. Sự khác biệt giữa Máy chủ độc lập Selenium và Máy chủ Selenium? Sau đây là đầu ra của mã, như mong đợi. BrowserStack cũng cho phép bạn xem video kiểm tra đang được thực hiện trên thiết bị trong thời gian thực từ bảng điều khiển của bạn driver = webdriver.Chrome('./chromedriver')0 Hạn chế với các bài kiểm tra Selenium PythonMặc dù Selenium giúp bạn tự động hóa các bài kiểm tra của mình và tiết kiệm thời gian quý báu, nhưng nó vẫn có những hạn chế. Ngay cả với một bộ thử nghiệm mạnh mẽ như vậy, bạn sẽ thường thấy mình ở một vị trí khó xử do tính chất luôn thay đổi của công nghệ giao diện người dùng Dưới đây là năm thách thức hàng đầu mà một người phải đối mặt khi tự động hóa quy trình thử nghiệm với Selenium Suy nghĩ cuối cùngBài viết này đề cập đến các kỹ thuật khác nhau để tự động hóa quy trình thử nghiệm trên nhiều trình duyệt của bạn thông qua Selenium bằng Python. Nó đã thảo luận về các khía cạnh khác nhau của Selenium Webdriver Python Testing như hỗ trợ trình duyệt, điều hướng DOM, chờ đợi và kiểm tra đơn vị Ngay cả khi có tất cả kiến thức về cách thức hoạt động của khung Selenium, khung thử nghiệm của bạn chỉ mạnh mẽ như các thử nghiệm mà bạn thiết kế. Tự động hóa quy trình kiểm thử giúp tiết kiệm rất nhiều thời gian trong quá trình kiểm thử, vì vậy bạn nên đảm bảo rằng bạn dành thời gian đáng kể cho việc thiết kế kiểm thử để nắm bắt tất cả các tình huống có thể xảy ra. Bắt lỗi trong giai đoạn thử nghiệm luôn tốt hơn là dẫn đến khiếu nại của khách hàng Selenium WebDriver giúp việc kiểm thử tự động trở nên dễ dàng và hiệu quả hơn bao giờ hết. Bằng cách sử dụng Python để tạo các tập lệnh kiểm tra, thật dễ dàng để thực hiện Kiểm tra giao diện người dùng tự động cho các ứng dụng. Điều này đặc biệt hữu ích khi chu kỳ phát triển ngắn và các tính năng phải được thêm vài tuần một lần để theo kịp nhu cầu của người dùng Selenium được khuyên dùng rộng rãi do tính linh hoạt mà nó mang lại. Nó hỗ trợ các nền tảng chính như Windows, Linux, v.v. và các trình duyệt như Chrome, IE, Edge, Firefox và Safari cũng như nhiều tập lệnh như Ruby, Perl, C#, Python, Java và JavaScript Để cung cấp ứng dụng có trải nghiệm người dùng tối ưu, hãy sử dụng các công cụ dựa trên đám mây như BrowserStack Automate cung cấp quyền truy cập vào hơn 3000 trình duyệt và thiết bị thực để thử nghiệm trên đó. Thử nghiệm trên đám mây thiết bị thực để cung cấp trải nghiệm đa nền tảng liền mạch thông qua thử nghiệm chính xác. Vì thử nghiệm trên Cloud Selenium Grid có tính đến các điều kiện thực của người dùng, nên nó giúp xác định các điểm nghẽn và mang lại trải nghiệm người dùng liền mạch và nhất quán trên các trình duyệt và thiết bị khác nhau Chạy thử nghiệm Selenium Python trên thiết bị thực Kiểm tra tự động hóa Selenium Trình quản trị trang web Selenium Bài đăng này có hữu ích không? Vâng, cảm ơn Không thực sự Chúng tôi rất tiếc khi biết điều đó. Hãy chia sẻ phản hồi của bạn để chúng tôi có thể làm tốt hơnCảm ơn rất nhiều phản hồi của bạn thẻ Kiểm tra tự động hóa Selenium Trình quản trị trang web SeleniumNhững bài viết liên quanCách chuyển tab trong Selenium cho PythonHướng dẫn này trình bày cách chuyển đổi giữa nhiều tab trong Selenium bằng Python Tìm hiểu thêm Nhận URL hiện tại trong Selenium bằng Python. hướng dẫnHướng dẫn chi tiết cách sử dụng Get Current URL bằng Selenium trong Python để xác thực URL của một websit Tìm hiểu thêm Cách chụp ảnh màn hình bằng Python và SeleniumLàm cách nào để bạn tự động chụp ảnh màn hình trang web bằng Selenium và Python? Python có thể tương tác với trình duyệt không?Python có thể là ngôn ngữ lập trình phổ biến nhất trên thế giới, nhưng không giống như những ngôn ngữ JavaScript tiên phong khác, bạn không thể chạy mã Python trong trình duyệt.
Làm cách nào để tạo một trình duyệt bằng Python?Các bước triển khai GUI. . Tạo một cửa sổ chính Tạo một đối tượng QWebEngineView và thêm nó làm tiện ích trung tâm vào cửa sổ chính Thêm thanh trạng thái vào cửa sổ chính Tạo thanh công cụ và thêm nút điều hướng và chỉnh sửa dòng để hiện url, bên dưới đang hot thanh công cụ sẽ như thế nào |