WebDriver là ứng dụng tự động hóa trình duyệt, nó có chức năng điều khuyển, lấy nội dung , kết hợp Selenium để craw data cần giả lập hành động.
Danh sách các phương thức thao tác với trình duyệt:
Selenium WebDriver cung cấp nhiều phương pháp để tương tác với trình duyệt web và thực hiện các bài kiểm tra tự động. Dưới đây là danh sách các phương pháp WebDriver phổ biến, được phân loại theo chức năng của chúng, cùng với các giải thích ngắn gọn.
1. Phương pháp điều hướng
get($url): Tải trang web trong trình duyệt hiện tại.
- Ví dụ:$webdriver->get('https://example.com');
getCurrentUrl(): Trả về URL hiện tại của trình duyệt.
- Ví dụ:$currentUrl = $webdriver->getCurrentUrl();
getTitle(): Trả về tiêu đề của trang hiện tại.
- Ví dụ:$title = $webdriver->getTitle();
navigate()->to($url): Một cách khác để điều hướng đến URL.
- Ví dụ:$webdriver->navigate()->to('https://example.com');
navigate()->back(): Điều hướng đến trang trước trong lịch sử của trình duyệt.
- Ví dụ:$webdriver->navigate()->back();
navigate()->forward(): Di chuyển đến trang tiếp theo trong lịch sử của trình duyệt.
- Ví dụ:$webdriver->navigate()->forward();
navigate()->refresh(): Làm mới trang hiện tại.
- Ví dụ:$webdriver->navigate()->refresh();
2. Phương pháp tương tác phần tử
findElement($by): Tìm một phần tử duy nhất theo vị trí được chỉ định.
- Ví dụ:$element = $webdriver->findElement(LocatorStrategy::id, 'elementId');
findElements($by): Tìm tất cả các phần tử khớp.
- Ví dụ:$elements = $webdriver->findElements(LocatorStrategy::className, 'className');
findElementById($id): Tìm một phần tử theo ID của nó.
- Ví dụ:$element = $webdriver->findElementById('loginButton');
findElementByName($name): Tìm một phần tử theo tên của nó.
- Ví dụ:$element = $webdriver->findElementByName('username');
findElementByClassName($class): Tìm một phần tử theo tên lớp của nó.
- Ví dụ:$element = $webdriver->findElementByClassName('form-group');
findElementByTagName($tagName): Tìm một phần tử theo tên thẻ của nó.
- Ví dụ:$element = $webdriver->findElementByTagName('button');
findElementByXPath($xpath): Tìm một phần tử bằng XPath.
- Ví dụ:$element = $webdriver->findElementByXPath('//input[@type="text"]');
findElementByCssSelector($cssSelector): Tìm một phần tử bằng cách sử dụng bộ chọn CSS.
- Ví dụ:$element = $webdriver->findElementByCssSelector('.login-form input[type="text"]');
findElementByLinkText($linkText): Tìm kiếm phần tử liên kết theo văn bản chính xác của nó.
- Ví dụ:$element = $webdriver->findElementByLinkText('Click here');
findElementByPartialLinkText($partialLinkText): Tìm phần tử liên kết theo một phần văn bản.
- Ví dụ:$element = $webdriver->findElementByPartialLinkText('Click');
3. Hành động của phần tử
click(): Nhấp vào một phần tử (ví dụ: nút, liên kết).
- Ví dụ:$element->click();
sendKeys($keys): Nhập văn bản vào trường nhập liệu.
- Ví dụ:$element->sendKeys(array('myUsername'));
clear(): Xóa nội dung của trường nhập liệu.
- Ví dụ:$element->clear();
submit(): Gửi biểu mẫu (tương tự như nhấn nút gửi).
- Ví dụ:$element->submit();
getText(): Truy xuất văn bản hiển thị của một phần tử.
- Ví dụ:$text = $element->getText();
getAttribute($attributeName): Lấy giá trị của một thuộc tính cụ thể của một phần tử.
- Ví dụ:$value = $element->getAttribute('href');
getCssValue($propertyName): Truy xuất giá trị tính toán của thuộc tính CSS của một phần tử.
- Ví dụ:$color = $element->getCssValue('color');
isDisplayed(): Kiểm tra xem một phần tử có hiển thị trên trang hay không.
- Ví dụ:$isVisible = $element->isDisplayed();
isEnabled(): Kiểm tra xem một phần tử có được bật hay không (ví dụ: xem một nút có thể nhấp được không).
- Ví dụ:$isEnabled = $element->isEnabled();
isSelected(): Kiểm tra xem hộp kiểm hoặc nút radio có được chọn không.
- Ví dụ:$isSelected = $element->isSelected();
4. Quản lý trình duyệt và cửa sổ
manage(): Trả về WebDriver.Optionsđối tượng cung cấp quyền truy cập vào nhiều lệnh quản lý trình duyệt khác nhau.
- Ví dụ:$webdriver->manage()->timeouts()->implicitlyWait(10);
getWindowHandle(): Lấy địa chỉ của cửa sổ trình duyệt hiện tại.
- Ví dụ:$windowHandle = $webdriver->getWindowHandle();
getWindowHandles(): Trả về tất cả các tay cầm cửa sổ đang mở.
- Ví dụ:$windowHandles = $webdriver->getWindowHandles();
switchTo()->window($windowHandle): Chuyển ngữ cảnh sang một cửa sổ cụ thể.
- Ví dụ:$webdriver->switchTo()->window($windowHandle);
switchTo()->frame($frame): Chuyển ngữ cảnh sang một iframe cụ thể.
- Ví dụ:$webdriver->switchTo()->frame('frameName');
switchTo()->defaultContent(): Chuyển trở lại nội dung chính từ iframe.
- Ví dụ:$webdriver->switchTo()->defaultContent();
maximize(): Phóng to cửa sổ trình duyệt.
- Ví dụ:$webdriver->manage()->window()->maximize();
minimize(): Thu nhỏ cửa sổ trình duyệt (không phải lúc nào cũng có sẵn trên tất cả các trình điều khiển).
- Ví dụ:$webdriver->manage()->window()->minimize();
5. Phương pháp tương tác trang
getPageSource(): Truy xuất mã nguồn HTML của trang hiện tại.
- Ví dụ:$html = $webdriver->getPageSource();
takeScreenshot($filePath): Chụp ảnh màn hình trang hiện tại và lưu vào đường dẫn tệp đã cho.
- Ví dụ:$webdriver->takeScreenshot('/path/to/screenshot.png');
6. Thời gian chờ và thời gian chờ
implicitlyWait($timeout): Đặt thời gian chờ mặc định để tìm phần tử.
- Ví dụ:$webdriver->manage()->timeouts()->implicitlyWait(10);
setScriptTimeout($timeout): Đặt thời gian chờ cho các tập lệnh không đồng bộ.
- Ví dụ:$webdriver->manage()->timeouts()->setScriptTimeout(10);
setPageLoadTimeout($timeout): Đặt thời gian chờ để tải trang.
- Ví dụ:$webdriver->manage()->timeouts()->setPageLoadTimeout(10);
sleep($seconds): Tạm dừng thực thi trong một số giây cụ thể.
- Ví dụ: sleep(2);// Tạm dừng trong 2 giây.
7. Quản lý Cookie
getCookies(): Truy xuất tất cả cookie cho tên miền hiện tại.
- Ví dụ:$cookies = $webdriver->manage()->getCookies();
getCookieNamed($name): Truy xuất một cookie cụ thể theo tên của nó.
- Ví dụ:$cookie = $webdriver->manage()->getCookieNamed('sessionId');
deleteCookieNamed($name): Xóa một cookie cụ thể theo tên của nó.
- Ví dụ:$webdriver->manage()->deleteCookieNamed('sessionId');
deleteAllCookies(): Xóa tất cả cookie cho tên miền hiện tại.
- Ví dụ:$webdriver->manage()->deleteAllCookies();
addCookie($cookie): Thêm cookie mới vào trình duyệt.
- Ví dụ:$webdriver->manage()->addCookie(['name' => 'user', 'value' => '123']);
8. Thông tin phiên và trình duyệt
getCapabilities(): Truy xuất các khả năng của phiên WebDriver hiện tại (phiên bản trình duyệt, nền tảng, v.v.).
- Ví dụ:$capabilities = $webdriver->getCapabilities();
getPlatformName(): Truy xuất tên nền tảng mà WebDriver đang chạy.
- Ví dụ:$platform = $webdriver->getPlatformName();
getBrowserName(): Truy xuất tên trình duyệt mà WebDriver đang tương tác.
- Ví dụ:$browser = $webdriver->getBrowserName();
getVersion(): Truy xuất phiên bản trình duyệt mà WebDriver đang tương tác.
- Ví dụ:$version = $webdriver->getVersion();
9. Cảnh báo và cửa sổ bật lên
switchTo()->alert(): Chuyển sang cảnh báo hiện tại (ví dụ: hộp thoại bật lên).
- Ví dụ:$alert = $webdriver->switchTo()->alert();
alert->accept(): Chấp nhận (nhấp vào OK) cảnh báo hiện tại.
- Ví dụ:$alert->accept();
alert->dismiss(): Bỏ qua (nhấp vào Hủy) cảnh báo hiện tại.
- Ví dụ:$alert->dismiss();
**`cảnh báo->
Danh sách các loại LocatorStrategy:
Trong WebDriver (cụ thể là PHP WebDriver), LocatorStrategy đề cập đến LocatorStrategy
LocatorStrategy::id
- Nghĩa là : Xác định vị trí của một eid
- Mô tả :id
- Ví dụ :findElementBy(LocatorStrategy::id, 'username')
- Trường hợp sử dụng : Xác định vị trí trường nhập tên người dùng của biểu mẫu đăng nhập theo idthuộc tính của nó.
LocatorStrategy::name
- Nghĩa là : Xác định vị trí của một phần tử bằngname
- Mô tả : nameThuộc tính này thường được sử dụng trong các phần tử biểu mẫu (ví dụ: đầu vào, chọn) và có thể được sử dụng cho các phần tử không có giá trị duy nhấtid
- Ví dụ :findElementBy(LocatorStrategy::name, 'email')
- Trường hợp sử dụng : Tìm trường nhập email trong biểu mẫu idkhông có sẵn.
LocatorStrategy::className
- Nghĩa
- Mô tả :class
- Ví dụ :findElementBy(LocatorStrategy::className, 'button-class')
- Trường hợp sử dụng : Nhấp vào nút có tên lớp cụ thể.
LocatorStrategy::tagName
- Nghĩa
- Mô tả : Điều này hữu ích khi bạn muốn chọn các phần tử dựa trên loại của chúng (ví dụ: <div>, <input>,<button>
- Ví dụ :findElementBy(LocatorStrategy::tagName, 'button')
- Trường hợp sử dụng : Xác định vị trí một <button>phần tử trên trang.
LocatorStrategy::linkText
- Nghĩa là : Xác định vị trí của một phần tử liên kết (<a>
- Sự miêu tả
- Ví dụ :findElementBy(LocatorStrategy::linkText, 'Click here')
- Trường hợp sử dụng : Nhấp vào liên kết có văn bản chính xác Click here.
LocatorStrategy::partialLinkText
- Nghĩa là : Xác định vị trí của một phần tử liên kết (<a>
- Mô tả : Không giống như linkText, yêu cầu văn bản liên kết đầy đủ,partialLinkText
- Ví dụ :findElementBy(LocatorStrategy::partialLinkText, 'Click')
- Trường hợp sử dụng : Nhấp vào liên kết có một phần văn bản, chẳng hạn như "Nhấp vào đây" hoặc "Nhấp để tiếp tục".
LocatorStrategy::xpath
- Nghĩa
- Sự miêu tả
- Ví dụ :findElementBy(LocatorStrategy::xpath, '//*[@]')
- Trường hợp sử dụng : Xác định vị trí của một phần tử dựa trên việc idsử dụng XPath hoặc tìm một phần tử có thuộc tính cụ thể.
LocatorStrategy::cssSelector
- Nghĩa
- Sự miêu tả
- Ví dụ :findElementBy(LocatorStrategy::cssSelector, '.my-class > input[type="text"]')
- Trường hợp sử dụng : Tìm một phần tử có lớp hoặc cấu trúc CSS cụ thể.
LocatorStrategy::partialLinkText
- Nghĩa
- Mô tả : Tương tự nhưlinkText
- Ví dụ :findElementBy(LocatorStrategy::partialLinkText, 'Learn')
- Trường hợp sử dụng : Nhấp vào liên kết có chứa văn bản hiển thị từ "Học".
LocatorStrategy::attribute(sử dụng với XPath hoặc CSS Selector)
- Ý nghĩa : Xác định vị trí một phần tử dựa trên các thuộc tính của nó, chẳng hạn như name, type, class,>Sự miêu tả
- Ví dụ (XPath) :findElementBy(LocatorStrategy::xpath, '//*[@]')
- Ví dụ (CSS) :findElementBy(LocatorStrategy::cssSelector, '[]')
- Trường hợp sử dụng : Tìm một phần tử dựa trên>Tóm tắt các chiến lược định vị:
Chiến lược Sự miêu tả LocatorStrategy::id Tìm một phần tử theo idthuộc tính duy nhất của nó. LocatorStrategy::name Tìm một phần tử theo namethuộc tính của nó. LocatorStrategy::className Tìm một phần tử theo tên lớp CSS của nó (có thể khớp với nhiều phần tử). LocatorStrategy::tagName Tìm một phần tử theo tên thẻ HTML của nó (ví dụ: , div, button) input. LocatorStrategy::linkText Tìm một liên kết ( <a>) theo văn bản hiển thị chính xác của nó. LocatorStrategy::partialLinkText Tìm liên kết ( <a>) bằng văn bản hiển thị một phần. LocatorStrategy::xpath Tìm một phần tử bằng biểu thức XPath, cho phép thực hiện các truy vấn phức tạp dựa trên thuộc tính, văn bản và cấu trúc. LocatorStrategy::cssSelector Tìm một phần tử bằng cách sử dụng bộ chọn CSS, cho phép nhắm mục tiêu vào các phần tử dựa trên thuộc tính, lớp và phân cấp CSS. Khi nào nên sử dụng định vị nào:
- Sử dụngid khi phần tử có tính duy nhất và nhất quánid
- Sử dụngname khi một phần tử có namethuộc tính vàid
- Sử dụngclassName
- Sử dụngtagName cho các tìm kiếm chung theo loại phần tử, như định vị tất cả <input>hoặc<button>
- Sử dụng linkTexthoặcpartialLinkText
- Sử dụngxpath
- Sử dụngcssSelector
Bằng cách chọn đúng chiến lược định vị, bạn có thể xác định hiệu quả các yếu tố trong tác vụ tự động hóa web, cải thiện cả độ tin cậy và hiệu suất.
Danh sách các hành động trong WebDriver LocatorStrategy:
Trong WebDriver, hành động là các phương pháp mô phỏng tương tác của người dùng với các thành phần web. Các hành động này thường được sử dụng sau khi định vị các thành phần có LocatorStrategy
Các loại LocatorStrategy
hành động phổ biến:
sendKeys
- Ý nghĩa : Gửi các phím tắt đến một phần tử đầu vào (ví dụ:
<input>
,<textarea>
- Mô tả :
sendKeys
- Ví dụ
- Trường hợp sử dụng : Khi bạn cần nhập tên người dùng hoặc mật khẩu vào biểu mẫu đăng nhập.
- Ý nghĩa : Gửi các phím tắt đến một phần tử đầu vào (ví dụ:
click
- Nghĩa
- Mô tả :
click
- Ví dụ
- Trường hợp sử dụng : Khi bạn cần gửi biểu mẫu bằng cách nhấp vào nút gửi hoặc điều hướng đến trang khác bằng cách nhấp vào liên kết.
clear
- Nghĩa
- Mô tả :
clear
- Ví dụ
- Trường hợp sử dụng : Đặt lại trường nhập văn bản trước khi nhập giá trị mới (ví dụ: xóa hộp tìm kiếm).
submit
- Nghĩa
- Mô tả :
submit
Hành động mô phỏng việc gửi một phần tử biểu mẫu. Nó thường được sử dụng trên<form>
các phần tử hoặc trên các phần tử đầu vào có kiểusubmit
. - Ví dụ :
- Trường hợp sử dụng : Tự động gửi biểu mẫu mà không cần phải nhấp vào nút gửi một cách rõ ràng.
getText
- Ý nghĩa : Lấy nội dung văn bản của một phần tử.
- Mô tả :
getText
Hành động này lấy văn bản hiển thị bên trong một phần tử, chẳng hạn như đoạn văn, nút hoặc tiêu đề. - Ví dụ :
- Trường hợp sử dụng : Trích xuất thông tin từ nhãn, tiêu đề hoặc đoạn văn để xác minh hoặc xác thực.
getAttribute
- Ý nghĩa : Lấy giá trị của thuộc tính được chỉ định từ một phần tử.
- Mô tả :
getAttribute
Hành động này truy xuất giá trị thuộc tính của một phần tử (ví dụ:href
,src
,alt
,value
). Điều này có thể hữu ích khi bạn cần kiểm tra giá trị của các thuộc tính một cách động. - Ví dụ :
- Trường hợp sử dụng : Xác minh xem liên kết có đúng URL hay nguồn hình ảnh có đúng không.
isDisplayed
- Ý nghĩa : Kiểm tra xem một phần tử có hiển thị trên trang hay không.
- Mô tả :
isDisplayed
Hành động này kiểm tra xem phần tử hiện có hiển thị trong khung nhìn hay không. Điều này hữu ích để xác nhận rằng phần tử không bị ẩn hoặc không hiển thị do một số điều kiện (như menu hoặc cảnh báo ẩn). - Ví dụ :
- Trường hợp sử dụng : Xác minh xem có hiển thị cửa sổ bật lên hoặc thông báo lỗi trên trang hay không.
isEnabled
- Ý nghĩa : Kiểm tra xem một phần tử có được bật hay không.
- Mô tả :
isEnabled
Hành động này kiểm tra xem phần tử có ở trạng thái cho phép người dùng tương tác hay không (ví dụ: nút hoặc hộp kiểm đang hoạt động hoặc được bật). - Ví dụ :
- Trường hợp sử dụng : Xác minh xem nút có được bật hay trường biểu mẫu có thể tương tác được không.
isSelected
- Ý nghĩa : Kiểm tra xem hộp kiểm hoặc nút radio có được chọn hay không.
- Mô tả :
isSelected
Hành động này kiểm tra xem hộp kiểm hoặc nút radio có ở trạng thái được chọn hay không. - Ví dụ :
- Trường hợp sử dụng : Kiểm tra xem hộp kiểm hoặc nút radio đã được chọn hay chưa.
hover
- Ý nghĩa : Mô phỏng việc di chuột qua một phần tử.
- Mô tả :
hover
Hành động này mô phỏng việc di chuyển con trỏ chuột qua một phần tử mà không cần nhấp vào nó. Điều này thường được sử dụng để kích hoạt chú giải công cụ dựa trên di chuột hoặc hiển thị menu ẩn. - Ví dụ :
- Trường hợp sử dụng : Di chuột qua danh sách thả xuống để hiển thị thêm tùy chọn.
doubleClick
- Ý nghĩa : Mô phỏng thao tác nhấp đúp vào một phần tử.
- Mô tả :
doubleClick
Hành động này mô phỏng hành động nhấn nhanh nút chuột hai lần liên tiếp vào một phần tử. - Ví dụ :
- Trường hợp sử dụng : Tương tác với các thành phần phản hồi khi nhấp đúp (ví dụ: mở tệp trong trình khám phá tệp).
dragAndDrop
- Ý nghĩa : Mô phỏng thao tác kéo và thả một phần tử.
- Mô tả :
dragAndDrop
Hành động này mô phỏng việc nhấp và giữ một phần tử, sau đó di chuyển nó đến vị trí mới và thả ra. - Ví dụ :
- Trường hợp sử dụng : Mô phỏng chức năng kéo và thả trong các ứng dụng web.
Tóm tắt LocatorStrategy
các hành động:
Hoạt động | Sự miêu tả | Ví dụ về trường hợp sử dụng |
---|---|---|
sendKeys | Gửi các phím tắt đến một phần tử đầu vào (ví dụ: trường văn bản). | Điền vào hộp văn bản hoặc trường tìm kiếm. |
click | Mô phỏng cú nhấp chuột vào một phần tử. | Nhấp vào nút hoặc liên kết. |
clear | Xóa nội dung của trường nhập liệu. | Đặt lại trường văn bản trước khi nhập thông tin mới. |
submit | Gửi biểu mẫu hoặc phần tử đầu vào. | Tự động gửi biểu mẫu đăng nhập hoặc biểu mẫu tìm kiếm. |
getText | Lấy văn bản hiển thị bên trong một phần tử. | Trích xuất tin nhắn từ thông báo hoặc nhãn. |
getAttribute | Truy xuất giá trị của thuộc tính được chỉ định của một phần tử. | Xác minh giá trị của thuộc tính href , src , hoặc value . |
isDisplayed | Kiểm tra xem một phần tử có hiển thị trên trang hay không. | Kiểm tra xem hộp cảnh báo có hiển thị không. |
isEnabled | Kiểm tra xem một phần tử có được bật hay không. | Xác minh xem nút gửi có thể nhấp được hay trường biểu mẫu có được bật hay không. |
isSelected | Kiểm tra xem một phần tử (hộp kiểm hoặc nút radio) có được chọn hay không. | Xác minh xem hộp kiểm hoặc nút radio có được chọn không. |
hover | Mô phỏng việc di chuột qua một phần tử. | Di chuột qua menu thả xuống để hiển thị các tùy chọn ẩn |
Những câu hỏi thường gặp
Nếu bạn chưa tải file thông qua link rút gọn bao giờ, thì bạn có thể xem hướng dẫn để tải về.
Có nhé. Bạn vui lòng điền vào form yêu cầu khóa học này hoặc inbox quản trị viên để được update nhé!
Nếu bạn gặp vấn đề về liên kết ví dụ như tệp không tồn tại, không thể truy cập,...vui lòng báo cáo với quản trị viên.
Vui lòng xem hướng dẫn nếu bạn chưa biết cách xem video tại pdusoft.
FaceBook Comments
Google Comments
Không có nhận xét nào. Bạn hãy là người đầu tiên!