Javascriptexecutor Selenium C#

Trong bài trước, Kteam đã giới thiệu cho bạn THAO TÁC CƠ BẢN VỚI SELENIUM – một thư viện tuyệt vời cho việc sử dụng Auto WebBrowser

Ở bài viết này, chúng ta sẽ tiếp tục tìm hiểu Cách thực thi một đoạn JavaScript với Selenium trong WPF

Nội dung

Để đọc hiểu bài này tốt nhất, bạn cần.  

Trong bài này, chúng ta sẽ cùng tìm hiểu.  

  • Thực thi đoạn JavaScript với Selenium
  • Nhận kết quả từ JavaScript

Thực thi đoạn JavaScript với Selenium

Chúng ta sẽ sử dụng lại Project của bài trước để thực hiện bài này nhé. Bạn có thể tìm thấy Project trong bài THAO TÁC CƠ BẢN với SELENIUM

Mở dự án lên > Trong mã MainWindow. xaml. cs, they tabỏ qua [thẳng tay xóa. ] đoạn mã có sẵn này đi.  

// tìm đối tượng theo ID
var searchBar = firefoxDriver.FindElementById["searchUI"];
            
// gõ giá trị Selenium Kteam vào thanh tìm kiếm
searchBar.SendKeys["Selenium Kteam"];

// Lấy tagssearch ra
var tagssearch = firefoxDriver.FindElementById["tagssearch"];

// click vào tagssearch
tagssearch.Click[];

Chúng ta bắt đầu thử nghiệm một đoạn JavaScript ngay trên trang web Howkteam. com by way used Console of the browser

Mở trình duyệt > vào trang web Howkteam. com > Nhấn F12 > Nhấn vào tab Console[ Bảng điều khiển]

Cụ mình sẽ thử chạy một đoạn JavaScript có mục đích là giá trị của chữ Giáo dục là miễn phí và xuất hiện hộp thoại cảnh báo trên trình duyệt. Bằng cách dán đoạn JavaScript sau vào Bảng điều khiển của Firefox hoặc Chrome

var content = document.getElementsByClassName['contentpagetop'][0].children[0].innerHTML;
alert[content];

Lưu ý. nếu Firefox bắt phải nhập một đoạn cho phép dán thì bạn cứ nhập vào Bảng điều khiển. Đó là cơ chế bảo mật nhẹ của Firefox

Nhấp Enter và kết quả của đoạn văn bản Giáo dục là miễn phí xuất hiện trong hộp thoại cảnh báo

Giờ chúng ta sẽ thử thực hiện y thay đổi điều này với Selenium nhé.  

Để thực thi JavaScript với FirefoxDriver [ChromeDriver tương tự], chúng ta sử dụng lệnh sau

trình điều khiển firefox. ExecuteAsyncScript[“đoạn javaScript muốn thực thi”];

hoặc

trình điều khiển firefox. ExecuteScript[“javaScript đoạn muốn thực thi”];

Cụ thể trong ví dụ này, mình sẽ thực hiện kịch bản đoạn thi như sau

firefoxDriver.ExecuteScript["var content = document.getElementsByClassName['contentpagetop'][0].children[0].innerHTML;alert[content];"];

Mã hoàn chỉnh của sự kiện Button_Click

private void Button_Click[object sender, RoutedEventArgs e]
{
#region FirefoxDriver
// khởi tạo WebDriver
FirefoxDriver firefoxDriver = new FirefoxDriver[];

// chuyển trang đến website howkteam.com
firefoxDriver.Url = "//www.howkteam.com/";
firefoxDriver.Navigate[];
            
// thực thi JavaScript            
firefoxDriver.ExecuteScript["var content = document.getElementsByClassName['contentpagetop'][0].children[0].innerHTML;alert[content];"];


#endregion


#region ChromeDriver
//ChromeDriver chromeDriver = new ChromeDriver[];
//chromeDriver.Url = "//www.howkteam.com/";
//chromeDriver.Navigate[];

//firefoxDriver.ExecuteScript[""];
#endregion
}

Cùng chạy thử chương trình và xem kết quả nào

Vì vậy chúng ta đã thành công trong việc thực thi một đoạn JavaScript với Selenium. Bạn có thể tự mình thay thế các đoạn JavaScript khác nhé

Nhận kết quả từ JavaScript

Thực hiện thi được một đoạn JavaScript rồi thì thật tuyệt. Do đó để lấy giá trị của đoạn JavaScript đó ra thì chúng ta làm sao? .  

Để lấy được kết quả JavaScript chúng ta cần sử dụng giao diện IJavaScriptExecuter và trong đoạn JavaScript cần trả lại giá trị muốn lấy ra. Sau đó, bạn cần ép kiểu tường minh để lấy dữ liệu của bạn [Cùng một phương thức cho Chrome và Firefox]. Như ví dụ dưới đây

// thực thi JavaScript dùng IJavaScriptExecutor
IJavaScriptExecutor js = firefoxDriver as IJavaScriptExecutor;
// javascript cần return giá trị.
var dataFromJS = [string]js.ExecuteScript["var content = document.getElementsByClassName['contentpagetop'][0].children[0].innerHTML;return content;"];
MessageBox.Show[dataFromJS];

Đoạn mã trên sẽ lấy giá trị Giáo dục là miễn phí ra và hiển thị lên MessageBox của C#

Cùng chạy chương trình kiểm tra kết quả nhé

And they ta used to get the value from JavaScript. Bàn hoàn toàn có thể lấy các giá trị khác với kiểu dữ liệu khác theo cách tương tự này. Hãy tự mình thử nghiệm nhé. Chúc may mắn

Kết luận

Bài viết này sơ lược cho các bạn Cách thực thi và lấy dữ liệu từ JavaScript trong Selenium

Ở bài sau, Kteam sẽ giới thiệu về ELEMENT TRONG SELENIUM

Cảm ơn bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc đóng góp ý kiến ​​của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thần – Không sợ khó. ”

Load down

Dự án

Nếu công việc thực hiện theo hướng dẫn không thể hiện ra các phần như mong muốn. Bạn cũng có thể tải xuống DỰ ÁN THAM KHẢO ở liên kết bên dưới

Thảo luận

Nếu bạn gặp bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngại đặt câu hỏi trong phần BÌNH LUẬN bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam. com to get the support from the community

Chủ Đề