Selenium C# Cheat sheet pdf

Khung nguồn mở được sử dụng rộng rãi để thử nghiệm tự động là Selenium, đảm bảo rằng các ứng dụng web chạy đúng cách trên tất cả các trình duyệt và hệ điều hành. Do đó, Selenium đã trở nên rất phổ biến trong ngành thử nghiệm

Để kiểm tra các ứng dụng web của chúng tôi tốt hơn và giải quyết mọi thách thức mà chúng tôi gặp phải, điều quan trọng là phải tìm hiểu một số Các phương pháp hay nhất về Selenium trong khi viết mã kiểm tra. Một trong những yếu tố quan trọng nhất trong Selenium C# là khả năng sử dụng các lệnh Chờ để giảm tính dễ vỡ của các bài kiểm tra của chúng tôi.

Hãy xem cách các lệnh chờ trong Selenium C và C# giúp chúng ta giải quyết các vấn đề về độ trễ thời gian trong các ứng dụng web của mình

Chờ lệnh trong Selenium là gì?

Các lệnh đợi Selenium được sử dụng trong tự động hóa thử nghiệm để xử lý tải động các phần tử web. Vì một số phần tử có thể đã được tạo với sự trợ giúp của ajax hoặc khung công tác giao diện người dùng, nên phải mất một thời gian để chúng tải, nhưng vì chúng chưa được tải nên việc chạy thử nghiệm trên chúng không thành công.

Các lệnh đợi Selenium tạm dừng thực thi kiểm tra trong một khoảng thời gian nhất định cho đến khi các phần tử đó sẵn sàng trong DOM. Do đó, các thử nghiệm Selenium của chúng tôi đáng tin cậy hơn

Các loại lệnh chờ trong Selenium

Khung Selenium cung cấp ba loại lệnh chờ để triển khai

Lệnh chờ ngầm định trong C#

Chờ ngầm tạm dừng việc thực thi trình điều khiển web trong một khoảng thời gian xác định trước khi đưa ra bất kỳ lỗi nào. Thời gian được chỉ định dựa trên thời gian mà các thành phần web yêu cầu để sẵn sàng cho thử nghiệm và do đó được tải trên trang. Tuy nhiên, thời gian thực hiện của kiểm tra tổng thể tăng lên.  

Nếu phần tử cụ thể mất nhiều thời gian hơn thời gian được chỉ định, trình điều khiển web Selenium sẽ đưa ra lỗi “NoSuchElementException”

Cú pháp sử dụng lệnh chờ ngầm định trong Selenium C# như sau

driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(Value);

Hãy hiểu cách sử dụng chờ ẩn với sự trợ giúp của một ví dụ. Trong ví dụ này, chúng tôi sẽ điều hướng đến trang chủ của Google và sẽ đợi ở đó trong 20 giây trước khi thực hiện bước kiểm tra tiếp theo của chúng tôi. Hơn nữa, điều này cũng sẽ tăng thời gian thực hiện thêm 20 giây

using System;

using OpenQA.Selenium;

using OpenQA.Selenium.Chrome;

namespace Test

{

    class Program

    {

     Public static void Main(string[] args)

     {

         //Initialising ChromeDriver

         IWebDriver driver = new ChromeDriver();

 

         //Navigating to Google's homepage

         driver.Navigate().GoToUrl(" https://www.google.com ");

 

         //Applying Implicit Wait command for 20 seconds

            driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);

 

         //Clicking on an element after waiting for 20 seconds

         driver.FindElement(By.LinkText("I'm Feeling Lucky")).Click();

     }

    }

}

Lệnh chờ rõ ràng trong C#

Trong lệnh Chờ ngầm định, nó đợi trong một khoảng thời gian cụ thể. Tuy nhiên, trong Explicit Wait, nó sẽ đợi cho đến khi một số điều kiện xảy ra. Việc chờ đợi phần tử web ở đây không phải trong một khoảng thời gian cụ thể mà cho đến khi phần tử web sẵn sàng trong DOM để thử nghiệm. Đây là lý do nó còn được gọi là “chờ đợi thông minh”

 Lệnh Chờ rõ ràng kiểm tra điều kiện (phần tử có thể nhấp, được hiển thị, v.v.) cứ sau 250 mili giây. Hơn nữa, Chờ đợi ngầm chỉ áp dụng với các phương thức FindElement, tuy nhiên, Chờ đợi rõ ràng có một số điều kiện có thể xảy ra.

  Trình quản trị web Selenium cung cấp hai lớp để triển khai Chờ rõ ràng.

  • WebDriverĐợi
  • điều kiện dự kiến

WebDriverWait gọi phương thức lớpexpectedConditions cho đến khi nó trả về thành công hoặc hết thời gian đã chỉ định. Đó là một cải tiến lớn đối với Implicit Wait, vì không có thêm độ trễ trong quá trình thử nghiệm

Cú pháp sử dụng Explicit Wait như sau

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));

wait.Until(ExpectedConditions.ElementExists(By.Id("id")));

Trong cú pháp trên, ElementExists() được sử dụng như một phương thức, ví dụ, tuy nhiên, ExpectedConditions class can contain several other methods also. Some of the common methods used are.

AlertIsPresent()ElementIsVisible()ElementExists()ElementToBeClickable(By)ElementToBeClickable(IWebElement)ElementToBeSelected(By)TitleContains()UrlMatches()TextToBePresentInElementValue(IWebElement, String)TextToBePresentInElement()

Để biết thêm các phương pháp khác, bạn có thể tham khảo .

Cũng đọc . Cách sử dụng lệnh Chờ trong Selenium WebDriver

Bây giờ, hãy hiểu cách sử dụng lệnh chờ rõ ràng trong Selenium C# với sự trợ giúp của một ví dụ

Để sử dụng Chờ rõ ràng trong mã của bạn, trước tiên hãy cài đặt các gói sau vào tập lệnh của bạn

  • mởQA. selen. Ủng hộ. Giao diện người dùng - Nó sẽ giúp thực thi lớp WebDriverWait
  • SeleniumExtras. WaitHelpers – Nó sẽ giúp thực thi lớpexpectedConditions và các phương thức của nó vào kịch bản thử nghiệm của chúng tôi

Trong thử nghiệm này, thử nghiệm sẽ điều hướng đến trang web Gmail, sẽ điền thông tin đăng nhập và sau khi đăng nhập, chúng tôi sẽ đợi nút soạn thảo được tải và sau khi tải xong, nút sẽ được nhấp vào. Sau khi nhấp vào nút, chúng tôi sẽ đợi trong 20 giây với sự trợ giúp của Chờ đợi ngầm định, sau đó sẽ đóng trình duyệt

using System;

using NUnit.Framework;

using OpenQA.Selenium;

using OpenQA.Selenium.Chrome;

using OpenQA.Selenium.Support.UI;

using SeleniumExtras.WaitHelpers;

using System;

namespace ExplicitWait

{

    class ExplicitWait

    {

     IWebDriver driver;

     [SetUp]

     public void open_gmail()

     {

         driver = new ChromeDriver();

            driver.Manage().Window.Maximize();
 

     }

     [Test]

     public void login_and_wait()


     {


         String email_site = "https://gmail.com";

         driver.Url = email_site;

 

         IWebElement Email = driver.FindElement(By.Id("Email"));

         Email.SendKeys("your_username");

         Email.SendKeys(Keys.Return);

 

         IWebElement Password = driver.FindElement(By.Id("Email"));

         Password.SendKeys("your_password");

         Password.SendKeys(Keys.Return);

 

         driver.FindElement(By.Id("signIn")).Click();

 

         String xpath = "//div[contains(text(),'COMPOSE')]";

 

         WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));

 

         IWebElement ComposeButton = wait.Until(ExpectedConditions.ElementExists(By.XPath(xpath)));

 
         ComposeButton.Click();


            driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(30);


     }


     [TearDown]


        public void close_Browser()


     {

         driver.Quit();
  

     }


    } 

}

Có một số trường hợp ngoại lệ xảy ra, xảy ra khi trình điều khiển tìm kiếm phần tử web trong DOM. Tuy nhiên, nếu bạn muốn bỏ qua những lỗi này trong khi chờ điều kiện nào đó xảy ra, phương thức IgnoreExceptionTypes() được sử dụng. Một vài tình huống lỗi như vậy như sau

  • NoSuchElementException
  • StateElementReferenceException
  • ElementNotVisibleException
  • ElementNotSelectableException
  • NoSuchFrameException

  Cú pháp khi sử dụng Chờ rõ ràng như sau.

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.IgnoreExceptionTypes(typeof(ElementNotSelectableException));

Lệnh chờ thành thạo trong C#

Lệnh Fluent Wait trong Selenium tương tự như Explicit Wait ở rất nhiều khía cạnh. Nó cho phép bạn kiểm soát Trình điều khiển Web để đặt thời gian đã chỉ định cho một số điều kiện xuất hiện trước khi nó có thể gây ra lỗi “ElementNotVisibleException”

 Ưu điểm chính của việc triển khai lệnh Fluent Wait là đặt tần suất bỏ phiếu. Tần suất bỏ phiếu là tần suất mà trình điều khiển kiểm tra phần tử xem nó đã được tải hay chưa. Nó có thuộc tính. pollingfrquency và giá trị mặc định của nó là 500ms, có nghĩa là trình điều khiển sẽ kiểm tra cứ sau 500 mili giây trước khi đưa ra lỗi.

Cú pháp sử dụng Fluent Wait như sau

DefaultWait fluentWait = new DefaultWait(driver);

fluentWait.Timeout = TimeSpan.FromSeconds(5);

fluentWait.PollingInterval = TimeSpan.FromMilliseconds(polling_interval_in_ms);

Hãy cùng hiểu Fluent Wait với sự trợ giúp của một ví dụ, thể hiện ví dụ trước nơi trình điều khiển đợi nút soạn thư xuất hiện trong Gmail. Trong ví dụ này, thời gian chờ là 5 giây và tần suất bỏ phiếu là 250 mili giây

using System;

using NUnit.Framework;

using OpenQA.Selenium;

using OpenQA.Selenium.Chrome;

using OpenQA.Selenium.Support.UI;

using SeleniumExtras.WaitHelpers;

using System; 

namespace Selenium_ExplicitWait_Demo

{

    class Selenium_ExplicitWait_Demo

    {

     IWebDriver driver;

     [SetUp]

     public void open_gmail()

     {

         driver = new ChromeDriver();

            driver.Manage().Window.Maximize();

     }

     [Test]

     public void login_and_wait()

     {

         DefaultWait fluentWait = new DefaultWait(driver);

         fluentWait.Timeout = TimeSpan.FromSeconds(5);

         fluentWait.PollingInterval = TimeSpan.FromMilliseconds(250);

 

         String email_site = "https://gmail.com";

         driver.Url = email_site;

 

         IWebElement Email = driver.FindElement(By.Id("Email"));

         Email.SendKeys("your_username");

         Email.SendKeys(Keys.Return);

 

         IWebElement Password = driver.FindElement(By.Id("Email"));

         Password.SendKeys("your_password");

         Password.SendKeys(Keys.Return);

 

         driver.FindElement(By.Id("signIn")).Click();

 

         String xpath = "//div[contains(text(),'COMPOSE')]";

         IWebElement ComposeButton = fluentWait.Until(dom => dom.FindElement(By.XPath(xpath)));

 

         ComposeButton.Click();

 

            driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(30);

 

     }

 

     [TearDown]

 

     public void close_Browser()

 

     {

   

         driver.Quit();

   

     }

 

    }

}

Tuy nhiên, cú pháp bỏ qua các ngoại lệ trong khi sử dụng Fluent Wait như sau

fluentWait.IgnoreExceptionTypes(typeof(ElementNotSelectableException));

Tóm tắt nó lên

Trong hướng dẫn này, chúng tôi đã hiểu làm thế nào một số phần tử web có thể mất nhiều thời gian hơn để tải hơn những phần tử khác. Điều này xảy ra khi các phần tử web được xây dựng bằng Ajax hoặc bất kỳ khung giao diện người dùng nào. Tuy nhiên, điều này gây cản trở trong quá trình thử nghiệm của chúng tôi và do đó, chúng tôi không có được trải nghiệm thử nghiệm hoàn hảo.  

Do đó, các lệnh Chờ đóng một vai trò quan trọng trong thử nghiệm tự động hóa Selenium để giải quyết vấn đề này khi nó tạm dừng thử nghiệm cho đến khi chúng tôi sẵn sàng thử nghiệm cụ thể trong DOM;

Lưới Selenium của BrowserStack cung cấp hơn 3000 thiết bị và trình duyệt thực để thử nghiệm tự động. Người dùng có thể chạy thử nghiệm trên nhiều thiết bị và trình duyệt thực bằng cách đăng ký, đăng nhập và chọn các kết hợp cần thiết

Thử kiểm tra Selenium trên đám mây

Khung tự động hóa Kiểm tra tự động hóa

Bài đăng này có hữu ích không?

Vâng, cảm ơn Không thực sự

Chúng tôi rất tiếc khi biết điều đó. Hãy chia sẻ phản hồi của bạn để chúng tôi có thể làm tốt hơn

Cảm ơn rất nhiều phản hồi của bạn

thẻ

Khung tự động hóa Kiểm tra tự động hóa

Những bài viết liên quan

Selenium C# Cheat sheet pdf

Khung kiểm tra C # hàng đầu cho mọi nhà phát triển

Mong muốn tìm hiểu các khung kiểm tra C # hàng đầu và sự khác biệt của chúng?

Tìm hiểu thêm

Selenium C# Cheat sheet pdf

Các lệnh Selenium mà mọi Nhà phát triển hoặc Người kiểm tra phải biết

Bài hướng dẫn này giải thích một bộ lệnh cơ bản cần thiết để bắt đầu với Selenium test automati

Tìm hiểu thêm

Selenium C# Cheat sheet pdf

Cách giải quyết các vấn đề về khả năng tương thích của trình duyệt chéo JavaScript

Các sự cố tương thích phổ biến với trình duyệt Javascript và cách giải quyết chúng. Kiểm tra JavaScript của trang web của bạn

Selenium C# dùng để làm gì?

Selenium là bộ thử nghiệm tự động hóa giao diện người dùng web mã nguồn mở . Nó được phát triển bởi Jason Huggins vào năm 2004 như một công cụ nội bộ tại Thought Works. Nó hỗ trợ tự động hóa trên các trình duyệt, nền tảng và ngôn ngữ lập trình khác nhau bao gồm Java, Python, C#, v.v.

Selenium có hỗ trợ ngôn ngữ C không?

Selenium WebDriver có sẵn bằng năm ngôn ngữ lập trình chính thức. Ngôn ngữ Ruby, Java, Python, JavaScript và C .

Tôi có thể sử dụng Selenium với C++ không?

Webdriver++ là thư viện máy khách C++ dành cho Selenium Webdriver mà bạn phải cài đặt và có hỗ trợ tính năng sau. Chuỗi lệnh. Các đối tượng giống như giá trị tương thích với bộ chứa STL.

Chúng tôi có thể sử dụng TestNG với Selenium C# không?

Những đồ đạc này rất dễ đạt được với TestNG, nhưng TestNG chỉ có thể được sử dụng với java. Trong khi làm bài kiểm tra Selenium với C#, tôi bắt gặp NUnit