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