string IWebDriver.Url {get; set;} - Phương pháp này load một trang web mới trong cửa sổ trình duyệt hiện tại. Phương thức này lấy và đặt giá trị và có thể được sử dụng theo cả hai cách.
Lệnh - driver.Url = “appUrl”; // Để mở Url
Lệnh - String Url = driver.Url; // Để lấy Url đã mở
Trong đó appUrl là địa chỉ trang web để tải. Tốt nhất là sử dụng một URL đủ điều kiện.
Thí dụ:
driver.Url = ("https://anhtester.com");
string IWebDriver.Title {get;} - Phương thức này tìm nạp Title của trang web. Không chấp nhận tham số và trả về giá trị Chuỗi.
Command - trình điều khiển.Title;
Vì kiểu trả về là giá trị String, đầu ra phải được lưu trữ trong đối tượng hoặc biến String.
Thí dụ:
String Title = driver.Title;
string IWebDriver.PageSource {get;} - Phương thức này trả về Mã nguồn của trang. Không chấp nhận tham số và trả về giá trị Chuỗi.
Lệnh - trình điều khiển.PageSource;
Vì kiểu trả về là giá trị String, đầu ra phải được lưu trữ trong đối tượng / biến String.
Thí dụ:
String PageSource = driver.PageSource;
void IWebDriver.Close() - Phương thức này chỉ đóng cửa sổ hiện tại mà IWebDriver đang kiểm soát. Không chấp nhận gì như một tham số và không trả về gì.
Lệnh - trình điều khiển.Close();
Và nó sẽ thoát trình duyệt luôn nếu đó là cửa sổ cuối cùng hiện đang mở.
Thí dụ:
driver.Close();
void IWebDriver.Quit() - Phương thức này Đóng tất cả các cửa sổ do IWebDriver mở. Không chấp nhận gì như một tham số và không trả về gì.
Lệnh - driver.Quit();
Đóng mọi cửa sổ được liên kết.
Thí dụ:
driver.Quit();
[Test]
public void TestIWebDriver()
{
IWebDriver driver = new ChromeDriver();
//Launch the Anh Tester Website
driver.Url = "https://anhtester.com";
// Storing Title name in String variable
String Title = driver.Title;
// Storing Title length in Int variable
int TitleLength = driver.Title.Length;
// Printing Title name on Console
Console.WriteLine("Title of the page is : "+Title);
// Printing Title length on console
Console.WriteLine("Length of the Title is : " + TitleLength);
// Storing URL in String variable
String PageURL = driver.Url;
// Storing URL length in Int variable
int URLLength = PageURL.Length;
// Printing URL on Console
Console.WriteLine("URL of the page is : " + PageURL);
// Printing URL length on console
Console.WriteLine("Length of the URL is : " + URLLength);
// Storing Page Source in String variable
String PageSource = driver.PageSource;
// Storing Page Source length in Int variable
int PageSourceLength = driver.PageSource.Length;
// Printing Page Source on console
Console.WriteLine("Page Source of the page is : " + PageSource);
// Printing Page SOurce length on console
Console.WriteLine("Length of the Page Source is : " + PageSourceLength);
//Closing browser
driver.Quit();
}
Các cách khởi tạo Driver với các loại trình duyệt khác nhau và Import thư viện (using) tương ứng
// Chrome Driver
using OpenQA.Selenium.Chrome;
IWebDriver driver = new ChromeDriver();
// Firefox Webdriver
using OpenQA.Selenium.Firefox;
IWebDriver driver = new FirefoxDriver();
// PhantomJS
using OpenQA.Selenium.PhantomJS;
IWebDriver driver = new PhantomJSDriver();
// IE Driver
using OpenQA.Selenium.IE;
IWebDriver driver = new InternetExplorerDriver();
// Edge Driver
using OpenQA.Selenium.Edge;
IWebDriver driver = new EdgeDriver();
// Chuyển hướng đến 1 trang chỉ định
driver.Navigate().GoToUrl("https://anhtester.com");
// Lấy tiêu đề của trang
string title = driver.Title;
// Lấy đường dẫn url hiện tại
string url = driver.Url;
// Lấy cái source html của trang hiện tại (dạng chuỗi)
string html = driver.PageSource;
//Để đóng browser đang run. Nếu có 3 firefox đang được control bằng driver
//thì chỉ có cái firefox đang active được đóng thôi.
driver.Close();
//Để đóng tất cả các instance browser đang được control bằng driver.
driver.Quit();
// Điều hướng về lịch sử trang trước đó
driver.Navigate().Back();
// Làm mới trang hiện tại
driver.Navigate().Refresh();
// Điều hướng đến trang tiếp sau
driver.Navigate().Forward();
// Phóng hết cỡ trình duyệt theo full màn hình máy tính
driver.Manage().Window.Maximize();
// Thêm cookie mới với Key và Value chỉ định
Cookie cookie = new OpenQA.Selenium.Cookie("key", "value");
driver.Manage().Cookies.AddCookie(cookie);
// Lấy tất cả cookies của driver hiện tại
var cookies = this.driver.Manage().Cookies.AllCookies;
// Xóa một cookie theo tên
driver.Manage().Cookies.DeleteCookieNamed("CookieName");
// Xóa tất cả các cookies
driver.Manage().Cookies.DeleteAllCookies();
// Chuyển sang khung hiển thị trên trình duyệt được chỉ định các kiểu sau:
driver.SwitchTo().Frame(1); //khung hiển thị đầu
driver.SwitchTo().Frame("frameName"); //khung hiển thị theo tên
IWebElement element = this.driver.FindElement(By.Id("id"));
driver.SwitchTo().Frame(element); //khung hiển thị chứa element có ID chỉ định
// Chuyển sang khung hiển thị trên trình duyệt hiện tại
driver.SwitchTo().DefaultContent();
// Chuyển tới lớp hiển thị sau cùng (cửa sổ hiện tại)
driver.SwitchTo().Window(driver.WindowHandles.Last());
// Đặt thời gian chờ tải trang mặc định (đơn vị giây)
driver.Manage().Timeouts().SetPageLoadTimeout(new TimeSpan(10));
// Đặt thời gian chời ngầm định cho tất cả các element (đơn vị Giây)
//Ví dụ thiết lập 30 giây cho tất cả
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(30);
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Remote;
using SeleniumCSharp.Initialize;
namespace SeleniumCSharp.Bai7_IWebDriver
{
public class Buoi7_IWebDriver : Init_Program {
[Test]
public void TestIWebDriver() {
//Launch the Anh Tester Website
driver.Url = "https://anhtester.com";
// Storing Title name in String variable
String Title = driver.Title;
// Storing Title length in Int variable
int TitleLength = driver.Title.Length;
// Printing Title name on Console
Console.WriteLine("Title of the page is : " + Title);
// Printing Title length on console
Console.WriteLine("Length of the Title is : " + TitleLength);
// Storing URL in String variable
String PageURL = driver.Url;
// Storing URL length in Int variable
int URLLength = PageURL.Length;
// Printing URL on Console
Console.WriteLine("URL of the page is : " + PageURL);
// Printing URL length on console
Console.WriteLine("Length of the URL is : " + URLLength);
// Storing Page Source in String variable
String PageSource = driver.PageSource;
// Storing Page Source length in Int variable
int PageSourceLength = driver.PageSource.Length;
// Printing Page Source on console
Console.WriteLine("Page Source of the page is : " + PageSource);
// Printing Page SOurce length on console
Console.WriteLine("Length of the Page Source is : " + PageSourceLength);
//Closing browser
driver.Quit();
}
[Test]
public void BasicBrowser()
{
driver.Navigate().GoToUrl("https://anhtester.com");
// Lấy tiêu đề của trang
string title = driver.Title;
// Lấy đường dẫn url hiện tại
string url = driver.Url;
// Lấy cái source html của trang hiện tại (dạng chuỗi)
//string html = driver.PageSource;
Console.WriteLine(title);
Console.WriteLine(url);
//Console.WriteLine(html);
driver.FindElement(By.XPath("//a[@id='btn-login']")).Click();
Thread.Sleep(2000);
// Điều hướng về lịch sử trang trước đó
driver.Navigate().Back();
Thread.Sleep(2000);
// Làm mới trang hiện tại
driver.Navigate().Refresh();
Thread.Sleep(2000);
// Điều hướng đến trang tiếp sau
driver.Navigate().Forward();
Thread.Sleep(3000);
}
[Test]
public void AdvancedBrowser_Cookies()
{
driver.Navigate().GoToUrl("https://anhtester.com");
//driver.FindElement(By.XPath("//a[@id='btn-login']")).Click();
Thread.Sleep(2000);
//driver.Manage().Window.FullScreen();
// Thêm cookie mới với Key và Value chỉ định
var cookie1 = new Cookie("hoang", "Ngáo");
driver.Manage().Cookies.AddCookie(cookie1);
driver.Manage().Cookies.AddCookie(new Cookie("test1", "cookie1"));
var cookie2 = new Cookie("test2", "cookie2");
driver.Manage().Cookies.AddCookie(cookie2);
Console.WriteLine("Đã thêm Cookies");
// Lấy tất cả cookies của driver hiện tại
var cookies = this.driver.Manage().Cookies.AllCookies;
Console.Write("Đã lấy ra Cookie là: ");
Console.WriteLine(cookies.Count);
//Xóa Cookie1
driver.Manage().Cookies.DeleteCookieNamed("hoang");
//Get lại
var cookieDeleted = this.driver.Manage().Cookies.AllCookies;
Console.WriteLine("Số cookies còn lại: "+cookieDeleted.Count);
Thread.Sleep(3000);
}
[Test]
public void AdvancedBrowser_Frames()
{
driver.Navigate().GoToUrl("http://the-internet.herokuapp.com/nested_frames");
//driver.FindElement(By.XPath("//a[@id='btn-login']")).Click();
Thread.Sleep(1000);
driver.SwitchTo().ParentFrame();
Console.WriteLine("Đã tới Frame Đầu tiên");
driver.SwitchTo().Frame("frame-top");
Console.WriteLine("Đã tới Frame Top");
//driver.SwitchTo().Frame("frameset-middle");
//Console.WriteLine("Đã tới frameset-middle");
driver.SwitchTo().Frame("frame-middle");
Console.WriteLine("Đã tới Frame Middle");
string middleText = driver.FindElement(By.XPath("//div[@id='content']")).Text;
Console.WriteLine(middleText);
driver.Navigate().GoToUrl("https://devforum.info");
Thread.Sleep(1000);
}
}
}
An build thêm cái website này hỗ trợ các bạn chạy auto test nè:
Severity: Notice
Message: Undefined variable: new
Filename: post/post_detail.php
Line Number: 382
Backtrace:
File: /home/anhtest2/public_html/application/views/frontend/post/post_detail.php
Line: 382
Function: _error_handler
File: /home/anhtest2/public_html/application/views/frontend/layout/layout_view.php
Line: 361
Function: view
File: /home/anhtest2/public_html/application/core/MY_Controller.php
Line: 34
Function: view
File: /home/anhtest2/public_html/application/controllers/frontend/Post.php
Line: 59
Function: render
File: /home/anhtest2/public_html/index.php
Line: 315
Function: require_once
Severity: Notice
Message: Trying to get property 'slug' of non-object
Filename: post/post_detail.php
Line Number: 382
Backtrace:
File: /home/anhtest2/public_html/application/views/frontend/post/post_detail.php
Line: 382
Function: _error_handler
File: /home/anhtest2/public_html/application/views/frontend/layout/layout_view.php
Line: 361
Function: view
File: /home/anhtest2/public_html/application/core/MY_Controller.php
Line: 34
Function: view
File: /home/anhtest2/public_html/application/controllers/frontend/Post.php
Line: 59
Function: render
File: /home/anhtest2/public_html/index.php
Line: 315
Function: require_once
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