Nội dung bài học

Sử dụng các hàm của IWebElement trong Selenium C#: FindElement, FindElements, Click, Clear, SendKeys, GetText, GetAttribute, GetCssValue, Text,...

Danh sách các Hàm cơ bản của IWebElement

Tất cả các thao tác cơ bản cần thực hiện khi tương tác với một trang web sẽ được thực hiện thông qua Giao diện IWebElement này.

IWebElement | Anh Tester

Locators

Bộ định vị, tìm Element theo các kiểu khác nhau

this.driver.FindElement(By.ClassName("className"));
this.driver.FindElement(By.CssSelector("css"));
this.driver.FindElement(By.Id("id"));
this.driver.FindElement(By.LinkText("text"));
this.driver.FindElement(By.Name("name"));
this.driver.FindElement(By.PartialLinkText("pText"));
this.driver.FindElement(By.TagName("input"));
this.driver.FindElement(By.XPath("//*[@id='editor']"));

// Tìm nhiều Element chung kiểu
IReadOnlyCollection<IWebElement> anchors = this.driver.FindElements(By.TagName("a"));

// Tìm kiếm một phần tử bên trong một phần tử khác
var div = this.driver.FindElement(By.TagName("div")).FindElement(By.TagName("a"));


Các hàm cơ bản của IWebElement

1. Clear()

void IWebElement.Clear () - Sẽ xóa giá trị trong ô text. Không có tham số và không trả về gì cả.
Lệnh:

element.Clear();

Phương pháp này không ảnh hưởng đến các yếu tố khác. Phần tử nhập văn bản là phần tử INPUT và TEXTAREA
Ví dụ:

IWebElement element = driver.FindElement(By.Id("UserName"));
element.Clear();
 
//Hoặc có thể viết
 
driver.FindElement(By.Id("UserName")).Clear();


2. SendKeys()

void IWebElement.SendKeys (string text) - Nhập giá trị vào ô text, có thể đặt giá trị của nó. Phương thức này chấp nhận chuỗi làm tham số và không trả về gì.
Lệnh:

element.SendKeys(“text”);

 

Phương pháp này hoạt động tốt với các phần tử nhập văn bản như phần tử INPUT và TEXTAREA.
Ví dụ:

IWebElement element = driver.FindElement(By.Id("UserName"));
element.SendKeys("AnhTester");

//Hoặc có thể viết

driver.FindElement(By.Id("UserName")).SendKeys("AnhTester");


3. Click()

void IWebElement.Click () - Nhấp vào bất kỳ phần tử nào. Không có tham số và không trả về gì.
Lệnh:

element.Click();

Click có lẽ là cách phổ biến nhất để tương tác với các phần tử web như phần tử văn bản, liên kết, radio, checkbox và nhiều thứ khác.
Ví dụ:

IWebElement element = driver.FindElement(By.LinkText("Dashboard"));
element.Click();

//Hoặc có thể viết

driver.FindElement(By.LinkText("Dashboard")).Click();

Có một số điều kiện tiên quyết để một phần tử được nhấp vào. Phần tử phải Hiển thị và nó phải có Chiều cao và Chiều rộng lớn hơn 0.

4. Displayed

bool IWebElement.Displayed {get; } - Phương thức này xác định xem một phần tử hiện đang được hiển thị hay không. Điều này không chấp nhận tham số nhưng trả về giá trị boolean (true / false).

Lệnh:

element.Displayed;

Ví dụ:

IWebElement element = driver.FindElement(By.Id("UserName"));
bool status = element.Displayed;

//Hoặc có thể viết

bool staus = driver.FindElement(By.Id("UserName")).Displayed;

Chú ý: Điều này đề cập đến thuộc tính của phần tử, đôi khi phần tử hiện diện trên trang nhưng thuộc tính của phần tử được đặt thành ẩn (hide), trong trường hợp đó, nó sẽ trả về false, vì phần tử hiện diện trong DOM nhưng không hiển thị lên.

5. Enabled

bool IWebElement.Enabled {get; } - Điều này xác định xem phần tử hiện đang được Bật hay không? Điều này không chấp nhận tham số nhưng trả về giá trị boolean (true / false).
Lệnh:

element.Enabled;

Ví dụ:

IWebElement element = driver.FindElement(By.Id("UserName"));
bool status = element.Enabled;
 
//Hoặc có thể viết
bool staus = driver.FindElement(By.Id("UserName")).Enabled;

// Kiểm tra xem trường Văn bản đã được bật chưa, nếu có thì nhập giá trị

if(status){
    element.SendKeys("AnhTester");
}

 

6. Selected

bool IWebElement.Selected {get; }   - Xác định xem phần tử này có được chọn hay không. Điều này không chấp nhận tham số nhưng trả về giá trị boolean (true / false).
Lệnh:

element.Selected;

Thao tác này chỉ áp dụng cho các phần tử đầu vào như CheckboxesSelect OptionsRadio Buttons . Điều này trả về True nếu phần tử hiện đang được chọn hoặc được kiểm tra, ngược lại là false.

Ví dụ:

IWebElement element = driver.FindElement(By.Id("Sex-Male"));
bool status = element.Selected;
 
//Hoặc có thể viết
 
bool staus = driver.FindElement(By.Id("Sex-Male")).Selected;

 

Lưu ý : Trong các bài sau của  Check Box & Nút radio Drop Down & Multiple Selects, chúng ta sẽ có nhiều ví dụ hơn.

 

7. Submit()

void IWebElement.Submit () - Phương thức này hoạt động tốt / tốt hơn so với Click() nếu phần tử hiện tại là một biểu mẫu hoặc một phần tử trong một biểu mẫu. Điều này không chấp nhận gì làm tham số và không trả về gì.

Lệnh:

lement.Submit();

Nếu điều này làm cho trang hiện tại thay đổi, thì phương pháp này sẽ đợi cho đến khi trang mới được tải.

Ví dụ:

IWebElement element = driver.FindElement(By.Id("SubmitButton"));
element.Submit();
 
//Hoặc có thể viết
 
driver.FindElement(By.Id("SubmitButton")).Submit();

 

8. Text

string IWebElement.Text {get; } - Phương thức này sẽ lấy Text hiển thị (tức là không bị ẩn bởi CSS) của phần tử. Không có tham số và trả về một giá trị Chuỗi.

Lệnh:

element.Text;

Ví dụ:

IWebElement element = driver.FindElement(By.Xpath("anyLink"));
String linkText = element.Text;

 

9. TagName

string IWebElement.TagName {get; } - Phương thức này lấy tên thẻ của phần tử. Không có tham số nào và trả về một giá trị Chuỗi.

Lệnh:

element.TagName;

Thao tác này không trả về giá trị của thuộc tính name nhưng trả về thẻ
ví dụ:
Lấy tên thẻ "Input
" cho phần tử <input name="anhtester"/>

IWebElement element = driver.FindElement(By.Id("SubmitButton"));
String tagName = element.TagName;
 
//Hoặc có thể viết
String tagName = driver.FindElement(By.Id("SubmitButton")).TagName;​


10. GetCssValue()

string IWebElement.GetCssValue (string propertyName) - Phương thức này lấy ra giá trị của thuộc tính CSS của phần tử đã cho. Nó chấp nhận chuỗi là một tham số là tên thuộc tính.
Lệnh:
element.GetCssValue(thuộc tính css);​

Giá trị màu phải được trả về dưới dạng chuỗi rgba
ví dụ: nếu thuộc tính “background-color” được đặt là “green” trong nguồn HTML, giá trị trả về sẽ là “rgba (0, 255, 0, 1)”.


11. GetAttribute()

string IWebElement.GetAttribute (string propertyName) - Phương thức này lấy giá trị của thuộc tính đã cho của phần tử. Điều này chấp nhận Chuỗi làm tham số và trả về giá trị Chuỗi.

Lệnh:
element.GetAttribute("Thuộc tính");​

Các thuộc tính là Id, Name, Class và sử dụng phương pháp này bạn có thể nhận giá trị của các thuộc tính của bất kỳ phần tử nhất định nào.

Ví dụ:
IWebElement element = driver.FindElement(By.Id("SubmitButton"));
String attValue = element.GetAttribute("id"); //Nó sẽ trả về "SubmitButton"​

12. Size

System.Drawing.Size IWebElement.Size {get; } - Phương thức này lấy chiều rộng và chiều cao của phần tử được hiển thị. Không có tham số và trả về đối tượng Thứ nguyên. (Width, Height)
Lệnh:
element.Size();​

Ví dụ:

IWebElement element = driver.FindElement(By.Id("SubmitButton"));

Dimension dimensions = element.Size();

Console.WriteLine("Height: " + dimensions.Height + " Width: " + 
 dimensions.Width);

13. Location

System.Drawing.Location IWebElement.Location {get; }  - Phương pháp này xác định vị trí của phần tử trên trang. Không có  tham số và trả về đối tượng Point. (X, Y)

Lệnh:
element.Location;​

Điều này trả về đối tượng Point , từ đó chúng ta có thể nhận được tọa độ XY của phần tử cụ thể.

Ví dụ:
IWebElement element = driver.FindElement(By.Id("SubmitButton"));

Point point = element.Location;

Console.WriteLine("X cordinate : " + point.X + "Y cordinate: " + point.Y);​


Trên đây là các lệnh cơ bản của IWebElement hỗ trợ trong Selenium C#.

Tìm hiểu thêm tại: Các lệnh truy vấn trong Selenium WebDriver C#


Cộng đồng Automation Testing Việt Nam:


🌱 Zalo
Automation Testing:   https://zalo.me/g/lsxswc560
🌱 Facebook Group: Cộng đồng Automation Testing Việt Nam (Website, Desktop, Mobile)
🌱 Facebook Fanpage: Cộng đồng Automation Testing Việt Nam - Selenium

About the author

  • Anh Tester

    Đường dẫu khó chân vẫn cần bước đi
    Đời dẫu khổ tâm vẫn cần nghĩ thấu



Cộng đồng Automation Testing Việt Nam:


🌱 Zalo
Automation Testing:   https://zalo.me/g/lsxswc560
🌱 Facebook Group: Cộng đồng Automation Testing Việt Nam (Website, Desktop, Mobile)
🌱 Facebook Fanpage: Cộng đồng Automation Testing Việt Nam - Selenium

Chia sẻ kiến thức lên trang

Bạn có thể đăng bài để chia sẻ kiến thức, bài viết của chính bạn lên trang Anh Tester Blog

Danh sách bài học