Selenium Python Bindings là một thư viện mạnh mẽ cho phép chúng ta tự động hóa việc kiểm thử trên trình duyệt web. Với sự hỗ trợ của nhiều thuộc tính và phương thức, Selenium giúp các kỹ sư dễ dàng tương tác với các phần tử trang web, thực hiện các thao tác và kiểm tra kết quả. Dưới đây là 12 thuộc tính và phương thức quan trọng, được sử dụng phổ biến trong quá trình tự động hóa kiểm thử web.

Selenium Python Bindings cung cấp nhiều thuộc tính giúp bạn tương tác với trình duyệt và các phần tử trên trang web. Dưới đây là một số thuộc tính phổ biến:

1. WebDriver

  • driver.title: Trả về tiêu đề của trang hiện tại.
  • driver.current_url: Trả về URL của trang hiện tại.
  • driver.page_source: Trả về mã nguồn HTML của trang.
  • driver.window_handles: Trả về danh sách các cửa sổ đang mở.
  • driver.current_window_handle: Trả về handle của cửa sổ hiện tại.
  • driver.session_id: Trả về ID của phiên làm việc hiện tại.
  • driver.implicitly_wait(time_in_seconds): Đặt thời gian chờ ngầm định cho việc tìm kiếm phần tử.

2. WebElement

  • element.text: Trả về văn bản bên trong một phần tử.
  • element.tag_name: Trả về tên thẻ HTML của phần tử (như div, input).
  • element.is_displayed(): Kiểm tra xem phần tử có hiển thị không.
  • element.is_enabled(): Kiểm tra xem phần tử có đang ở trạng thái sẵn sàng không.
  • element.is_selected(): Kiểm tra xem phần tử có được chọn hay không (thường dùng với checkbox, radio button).
  • element.size: Trả về kích thước của phần tử (height, width).
  • element.location: Trả về vị trí của phần tử trên trang.

3. Options

  • webdriver.ChromeOptions(): Dùng để tùy chỉnh cách Chrome được khởi chạy.
  • options.add_argument("--headless"): Khởi động Chrome ở chế độ không giao diện đồ họa.

4. Navigation

  • driver.get(url): Điều hướng đến một URL cụ thể.
  • driver.back(): Quay về trang trước đó.
  • driver.forward(): Điều hướng đến trang tiếp theo.
  • driver.refresh(): Tải lại trang hiện tại.

5. Cookies

  • driver.get_cookies(): Trả về tất cả các cookie hiện tại dưới dạng một danh sách từ điển.
  • driver.add_cookie(cookie_dict): Thêm một cookie vào phiên làm việc. cookie_dict là một từ điển chứa các thuộc tính cookie như "name", "value", "domain", v.v.
  • driver.delete_cookie(name): Xóa cookie dựa trên tên.
  • driver.delete_all_cookies(): Xóa tất cả các cookie.

6. Alerts

  • driver.switch_to.alert: Chuyển sang hộp thoại cảnh báo (alert) hiện tại.
  • alert.text: Trả về văn bản của alert.
  • alert.accept(): Chấp nhận (OK) alert.
  • alert.dismiss(): Hủy bỏ (Cancel) alert.
  • alert.send_keys(text): Gửi văn bản vào hộp thoại alert (dùng cho các alert yêu cầu nhập liệu).

7. Frames

  • driver.switch_to.frame(name_or_index): Chuyển vào một frame cụ thể bằng tên, ID hoặc chỉ số.
  • driver.switch_to.default_content(): Thoát khỏi frame và trở về nội dung chính của trang.

8. Windows

  • driver.switch_to.window(window_handle): Chuyển đổi giữa các cửa sổ dựa trên handle của chúng.
  • driver.close(): Đóng cửa sổ hiện tại.
  • driver.quit(): Đóng tất cả các cửa sổ và kết thúc phiên làm việc.

9. Waits

  • Implicit Wait:
    • driver.implicitly_wait(time_in_seconds): Đặt thời gian chờ mặc định khi tìm kiếm phần tử trên trang.
  • Explicit Wait:
    • WebDriverWait(driver, timeout): Chờ đợi một điều kiện nhất định xảy ra trước khi tiếp tục.
    • expected_conditions: Một tập hợp các điều kiện được sử dụng với WebDriverWait, ví dụ:
      • presence_of_element_located(locator): Chờ đến khi một phần tử xuất hiện.
      • element_to_be_clickable(locator): Chờ đến khi phần tử có thể được nhấp.

10. Action Chains

  • from selenium.webdriver.common.action_chains import ActionChains: Cho phép thực hiện các chuỗi hành động như di chuột, kéo thả, nhấp đúp.
  • ActionChains(driver).click(element): Nhấp vào một phần tử.
  • ActionChains(driver).double_click(element): Nhấp đúp vào một phần tử.
  • ActionChains(driver).move_to_element(element): Di chuyển chuột đến một phần tử.
  • ActionChains(driver).drag_and_drop(source, target): Kéo thả phần tử từ source đến target.

11. Keyboard Events

  • element.send_keys(Keys.RETURN): Gửi phím “Enter” đến một phần tử.
  • element.send_keys(Keys.TAB): Gửi phím “Tab”.

12. Screenshots

  • driver.save_screenshot(file_path): Lưu ảnh chụp màn hình của trang hiện tại dưới dạng file.
  • element.screenshot(file_path): Chụp màn hình của một phần tử cụ thể.

Việc nắm vững các thuộc tính quan trọng của Selenium Python Bindings giúp bạn dễ dàng thực hiện tự động hóa kiểm thử web hiệu quả. Các thuộc tính này cung cấp cho bạn khả năng tương tác linh hoạt với trình duyệt, phần tử HTML, cookie, và điều hướng trang. Khi áp dụng đúng cách, Selenium sẽ trở thành một công cụ không thể thiếu cho các kỹ sư kiểm thử trong việc tối ưu hóa và nâng cao chất lượng kiểm thử phần mềm.