Selenium บทเรียน C#: เฟรมเวิร์ก NUnit พร้อมตัวอย่าง
⚡ สรุปอย่างชาญฉลาด
Selenium WebDriver ทำหน้าที่ควบคุมเบราว์เซอร์จากภาษา C# ผ่านทางอินเทอร์เฟซ IWebDriver ในขณะที่ NUnit จะจัดเตรียมแอตทริบิวต์การทดสอบ การยืนยัน และการรายงานใน Test Explorer ซึ่งจะเปลี่ยนขั้นตอนการทำงานของเบราว์เซอร์เหล่านั้นให้กลายเป็นการทดสอบอัตโนมัติที่ทำซ้ำได้
Selenium ภาพรวมสินค้า
Selenium เป็นเว็บโอเพ่นซอร์ส การทดสอบระบบอัตโนมัติ เครื่องมือที่รองรับเบราว์เซอร์หลายตัวและระบบปฏิบัติการหลายระบบ ช่วยให้ผู้ทดสอบสามารถใช้ภาษาการเขียนโปรแกรมหลายภาษา เช่น Java, C#, PythonRuby, PHP และ Perl ใช้สำหรับเขียนโค้ดเพื่อทดสอบอัตโนมัติ หากคุณยังใหม่กับเครื่องมือนี้ ให้เริ่มต้นด้วย Selenium เกี่ยวกับการสอน และ WebDriver เทียบกับ Selenium การเปรียบเทียบ RC.
Selenium ตัวจัดการเบราว์เซอร์เป็นตัวกำหนดโครงสร้าง ส่วนภาษาที่คุณใช้ควบคุมเบราว์เซอร์นั้น
ภาพรวม C#
C# เป็นภาษาโปรแกรมเชิงวัตถุที่ได้มาจาก C++ และ JavaC# ช่วยให้นักพัฒนาสามารถสร้างแอปพลิเคชันโดยใช้ Visual Studio บนแพลตฟอร์ม .NET ได้ คุณสมบัติหลักของ C# มีดังต่อไปนี้ C#.
- เป็นภาษาโปรแกรมเชิงวัตถุ
- รองรับการพัฒนาคอนโซล, Windows และแอพพลิเคชั่นบนเว็บ
- โดยมีคุณสมบัติต่างๆ เช่น การห่อหุ้ม การสืบทอด และความหลากหลาย
ก่อนทำการเดินสายไฟ Selenium ในแง่นี้ การรู้จักรูปแบบของโปรแกรม C# ทั่วไปจะช่วยได้
ไวยากรณ์พื้นฐานของ C#
โปรแกรมที่เขียนด้วยภาษา C# จำเป็นต้องประกอบด้วยส่วนต่างๆ ดังต่อไปนี้
- การประกาศเนมสเปซ
- เรียน
- คุณสมบัติและวิธีการของคลาส
- วิธีหลัก
- คำสั่งโปรแกรม
ตัวอย่าง-
ด้านล่างเป็นตัวอย่าง Selenium ตัวอย่างโปรแกรม C# สำหรับพิมพ์ข้อความ 'Guruแสดงข้อความ '99' บนคอนโซลระบบ
using System; namespace FirstProgram { class DemoPrint { static void main(){ Console.WriteLine("Guru99"); } } }
คำอธิบาย:
- เนมสเปซในข้างต้น Selenium ตัวอย่าง C# คือชุดของหลายคลาส แต่ละเนมสเปซจะต้องประกาศโดยใช้คีย์เวิร์ด 'using'
- คำสั่งแรกของโค้ดจะมีเนมสเปซ 'ระบบ' อยู่ในโปรแกรมของเรา เนมสเปซของระบบกำหนดคลาสพื้นฐานและเหตุการณ์ที่ใช้ใน C# เนมสเปซที่จะใช้ขึ้นอยู่กับข้อกำหนดของโปรแกรม
- คำสั่งที่สองคือการประกาศเนมสเปซ “FirstProgram” สำหรับคลาส “DemoPrint” ไฟล์ AC# สามารถมีหลายคลาสภายในเนมสเปซเดียวกัน
- คำสั่งที่สามรวมถึงการประกาศชั้นเรียน คลาสอาจมีหลายแอตทริบิวต์และหลายวิธี
- คำสั่งที่สี่รวมถึงการประกาศวิธีการหลัก วิธีการหลักคือจุดเริ่มต้นของการดำเนินการสำหรับแต่ละคลาส
- ประโยคสุดท้ายคือไวยากรณ์ C# ที่ใช้สำหรับพิมพ์ข้อความไปยังคอนโซล WriteLine เป็นเมธอดหนึ่งของ
Consoleชั้นเรียน โปรดทราบว่าจุดเริ่มต้นสะกดว่าMainในภาษา C# ที่แท้จริง ตัวอักษร M จะเป็นตัวพิมพ์ใหญ่ ส่วนตัวอักษร M ตัวเล็กจะใช้ตัวพิมพ์เล็กmainในตัวอย่างข้างต้น จะไม่ถูกมองว่าเป็นจุดเริ่มต้น
เมื่อเข้าใจไวยากรณ์แล้ว ขั้นตอนต่อไปคือการติดตั้งเครื่องมือที่ใช้ในการคอมไพล์และรันการทดสอบเหล่านั้น
Selenium ด้วยการตั้งค่า C#
วิธีการตั้งค่า Visual Studio ด้วย Selenium เว็บไดร์เวอร์:
ตอนนี้อยู่ในนี้ Selenium บทช่วยสอน C# มาเรียนรู้ขั้นตอนการตั้งค่า Visual Studio ทีละขั้นตอนด้วย Selenium เว็บไดร์เวอร์:
Visual Studio เป็นสภาพแวดล้อมการพัฒนาแบบบูรณาการ (IDE) ที่ใช้โดยนักพัฒนาเพื่อสร้างแอปพลิเคชันบนแพลตฟอร์มต่างๆ เช่น Windows, Android, iOS และแอพพลิเคชั่นบนคลาวด์
ขั้นตอน 1) ไปที่ URL
https://visualstudio.microsoft.com/downloads/ และคลิกที่ 'ดาวน์โหลดฟรี' ปุ่มที่แสดงบนแท็บ Visual Studio Community
ขั้นตอน 2) เปิด exe ที่ดาวน์โหลดมา คลิกที่ 'ใช่' หากถูกถามถึงสิทธิ์ผู้ดูแลระบบ
ขั้นตอน 3) ป๊อปอัปด้านล่างจะปรากฏขึ้น คลิกที่ปุ่ม 'ดำเนินการต่อ'
ไฟล์จะถูกดาวน์โหลดตามที่แสดงในป๊อปอัปด้านล่าง
ขั้นตอน 4) ในหน้าจอถัดไป
เลือกช่องกาเครื่องหมายสำหรับ
- สากล Windows การพัฒนาแพลตฟอร์ม
- การพัฒนาแอปพลิเคชันเดสก์ท็อปด้วย .NET
คลิกที่ 'ติดตั้ง'
รอให้การติดตั้งแต่ละส่วนประกอบเสร็จสิ้น ไฟล์มีขนาด 16GB และต้องใช้เวลา
ขั้นตอน 5) ป๊อปอัปด้านล่างจะปรากฏขึ้น คลิกปุ่ม 'รีสตาร์ท'
ขั้นตอน 6) เมื่อรีสตาร์ทเครื่องแล้ว ให้ค้นหา “Visual Studio” บนเมนูเริ่ม แล้วคลิกที่ผลการค้นหา ป๊อปอัปต่อไปนี้จะปรากฏขึ้น คลิกที่ลิงก์ “ไม่ใช่ตอนนี้ อาจจะภายหลัง” หากคุณยังไม่มีบัญชี
ขั้นตอน 7) ในหน้าจอถัดไป
- เลือกธีมสีที่คุณชื่นชอบ
- คลิกปุ่ม “เริ่ม Visual Studio”
ขั้นตอน 8) หน้าจอ 'เริ่มต้นใช้งาน' ของ Visual Studio จะปรากฏขึ้น
สร้างโครงการใหม่ใน Visual Studio:
ขั้นตอน 1) ในเมนูไฟล์ คลิก ใหม่ > โครงการ
ขั้นตอน 2) ในหน้าจอถัดไป
- เลือกตัวเลือก 'Visual C#'
- คลิกที่แอปคอนโซล (.Net Framework)
- ป้อนชื่อเป็น “Guru99 "
- คลิกตกลง
ขั้นตอน 3) หน้าจอข้างล่างจะปรากฏขึ้นเมื่อสร้างโครงการสำเร็จแล้ว
ตั้งค่า Visual Studio ด้วย Selenium เว็บไดร์เวอร์:
ขั้นตอน 1) ไปที่เครื่องมือ -> NuGet ตัวจัดการแพ็คเกจ -> จัดการ NuGet แพ็คเกจสำหรับโซลูชั่น
ขั้นตอน 2) ในหน้าจอถัดไป
- ค้นหา Selenium บนหน้าจอผลลัพธ์
- เลือกผลการค้นหาแรก
- ทำเครื่องหมายถูกในช่องกาเครื่องหมายโครงการ
- คลิกที่ 'ติดตั้ง'
ขั้นตอน 3) คลิกที่ปุ่ม 'ตกลง' ในหน้าจอป๊อปอัป
ขั้นตอน 4) ข้อความด้านล่างนี้จะปรากฏขึ้นเมื่อติดตั้งแพ็คเกจสำเร็จแล้ว
Selenium ตอนนี้สามารถเปิดเบราว์เซอร์ได้แล้ว แต่ยังไม่สามารถรายงานได้ว่าการทดสอบผ่านหรือไม่ นั่นเป็นหน้าที่ของเฟรมเวิร์กการทดสอบหน่วย (unit testing framework)
กรอบงาน NUnit: ภาพรวม
NUnit คือ การทดสอบหน่วย กรอบงานที่ได้รับการสนับสนุนโดย Visual Studio และ Selenium WebDriver และ NUnit เป็นเฟรมเวิร์กสำหรับการทดสอบหน่วย (Unit Testing) ที่ใช้กันอย่างแพร่หลายที่สุดสำหรับแอปพลิเคชัน .NET NUnit นำเสนอผลลัพธ์การทดสอบในรูปแบบที่อ่านง่าย และช่วยให้ผู้ทดสอบสามารถดีบักการทดสอบอัตโนมัติได้
เราจำเป็นต้องติดตั้ง NUnit Framework และ NUnit Test Adapter ลงใน Visual Studio เพื่อใช้งานได้
ขั้นตอนในการติดตั้ง NUnit Framework
ตอนนี้อยู่ในนี้ Selenium ด้วยบทช่วยสอน C# มาเรียนรู้กระบวนการติดตั้งเฟรมเวิร์ก NUnit กันดีกว่า:
ขั้นตอน 1) ไปที่เครื่องมือ -> NuGet ตัวจัดการแพ็คเกจ -> จัดการ NuGet แพ็คเกจสำหรับโซลูชั่น
ขั้นตอน 2) ในหน้าต่างถัดไป
- ค้นหา NUnit
- เลือกผลการค้นหา
- เลือกโครงการ
- คลิกติดตั้ง
ขั้นตอน 3) ป๊อปอัปด้านล่างจะปรากฏขึ้น คลิกที่ปุ่ม 'ตกลง'
ขั้นตอน 4) ข้อความด้านล่างนี้จะปรากฏขึ้นเมื่อการติดตั้งเสร็จสมบูรณ์
ขั้นตอนในการดาวน์โหลด NUnit Test Adapter
ในบทช่วยสอน NUnit นี้ เราจะกล่าวถึงขั้นตอนในการดาวน์โหลด NUnit Test Adapter:
โปรดทราบว่าขั้นตอนด้านล่างนี้ใช้ได้กับเครื่องที่ใช้ 32 บิตเท่านั้น สำหรับเครื่องที่ใช้ 64 บิต คุณต้องดาวน์โหลด 'NUnit3 Test Adapter' โดยทำตามขั้นตอนเดียวกันกับที่ระบุไว้ด้านล่าง
แพ็กเกจปัจจุบัน: โครงการสมัยใหม่ติดตั้ง NUnit3TestAdapter พร้อมด้วย Microsoft.NET.Test.Sdkและคนที่มีอายุมากกว่า NUnitTestAdapter แพ็คเกจนี้ไม่ได้รับการดูแลรักษาอีกต่อไปแล้ว ใน .NET (Core) สามารถสร้างโครงสร้างพื้นฐานของโปรเจ็กต์ทั้งหมดได้ด้วย dotnet new nunitซึ่งจะรวมแพ็กเกจทั้งสามไว้ให้คุณโดยอัตโนมัติ
ขั้นตอน 1) ไปที่เครื่องมือ -> NuGet ตัวจัดการแพ็คเกจ -> จัดการ NuGet แพ็คเกจสำหรับโซลูชั่น ในหน้าจอนั้น
- ค้นหา NUnitTestAdapter
- คลิกผลการค้นหา
- เลือกโครงการ
- คลิกติดตั้ง
ขั้นตอน 2) คลิกตกลงบนหน้าต่างป๊อปอัปยืนยัน เมื่อการติดตั้งเสร็จสิ้น คุณจะเห็นข้อความต่อไปนี้
ติดตั้งทั้งสองส่วนเรียบร้อยแล้ว ขั้นตอนต่อไปคือการรวมทั้งสองส่วนเข้าด้วยกันในคลาสทดสอบเดียว
Selenium และกรอบงาน NUnit
การบูรณาการของเซเลเนียมกับกรอบงาน NUnit ช่วยให้ผู้ทดสอบสามารถแยกความแตกต่างระหว่างคลาสการทดสอบต่างๆ ได้ นอกจากนี้ NUnit ยังช่วยให้ผู้ทดสอบสามารถใช้คำอธิบายประกอบ เช่น SetUp, Test และ TearDown เพื่อดำเนินการก่อนและหลังการเรียกใช้การทดสอบ
สามารถรวมเฟรมเวิร์ก NUnit เข้าด้วยกันได้ Selenium โดยการสร้างคลาสทดสอบ NUnit และเรียกใช้คลาสทดสอบโดยใช้เฟรมเวิร์ก NUnit Java รูปแบบที่เทียบเท่ากับรูปแบบนี้มีอยู่ใน JUnit บทช่วยสอนเกี่ยวกับเฟรมเวิร์กและมีการกล่าวถึงทางเลือกอื่นแทน NUnit ใน Visual Studio สำหรับ .NET ควบคู่กันไป TestNG สำหรับ Selenium.
ขั้นตอนด้านล่างนี้ Selenium จำเป็นต้องมีบทช่วยสอนเกี่ยวกับเฟรมเวิร์ก C# เพื่อสร้างและรันคลาสทดสอบโดยใช้เฟรมเวิร์ก NUnit
ขั้นตอนในการสร้างคลาสทดสอบ NUnit Selenium:
ขั้นตอน 1) ใน Solution Explorer ให้คลิกขวาที่โปรเจ็กต์ > เพิ่ม > คลาส
ขั้นตอน 2) หน้าต่างสร้างชั้นเรียนจะปรากฏขึ้น
- ระบุชื่อให้กับชั้นเรียน
- คลิกที่ปุ่มเพิ่ม
ขั้นตอน 3) หน้าจอด้านล่างจะปรากฏขึ้น
ขั้นตอน 4) เพิ่มโค้ดต่อไปนี้ลงในคลาสที่สร้างขึ้น โปรดทราบว่าคุณต้องระบุตำแหน่งของไฟล์ 'chromedriver.exe' ในระหว่างการเริ่มต้นใช้งาน Chrome Driver Selenium การจัดส่งเวอร์ชัน 4.6 และรุ่นต่อมา Selenium ผู้จัดการซึ่งจะทำการค้นหาไดรเวอร์ที่ตรงกันโดยอัตโนมัติ ดังนั้น new ChromeDriver() รูปแบบปัจจุบันคือแบบที่ไม่มีอาร์กิวเมนต์พาธ — พาธด้านล่างยังคงใช้เพราะตรงกับภาพหน้าจอ
using NUnit.Framework; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using OpenQA.Selenium.Firefox; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Guru99Demo { class Guru99Demo { IWebDriver driver; [SetUp] public void startBrowser() { driver = new ChromeDriver("D:\\3rdparty\\chrome"); } [Test] public void test() { driver.Url = "http://www.google.co.in"; } [TearDown] public void closeBrowser() { driver.Close(); } } }
ขั้นตอน 4) คลิกที่ 'สร้าง' -> 'สร้างโซลูชัน'
หมายเหตุ: คุณอาจได้รับข้อผิดพลาดเช่น "ไม่มีวิธี 'หลัก' แบบคงที่ที่เหมาะสมสำหรับจุดเริ่มต้น" เมื่อคุณสร้าง
เพื่อแก้ไขปัญหานี้ ให้ไปที่ Project > Properties แล้วเปลี่ยน Output Type เป็น “Class Library” ค่าเริ่มต้นคือ “Console Application”
ขั้นตอน 5) เมื่อสร้างสำเร็จแล้ว เราจะต้องเปิดหน้าต่าง Test Explorer คลิกที่การทดสอบ -> Windows -> ทดสอบ Explorer
ขั้นตอน 6) หน้าต่าง Test Explorer จะเปิดขึ้นพร้อมกับรายการการทดสอบที่มีอยู่ คลิกขวาที่ Test Explorer และเลือก Run Selected Tests
ขั้นตอน 7) Selenium ต้องเปิดเบราว์เซอร์ด้วยข้อมูลที่ระบุไว้ URL จากนั้นปิดเบราว์เซอร์ สถานะของกรณีทดสอบจะเปลี่ยนเป็น 'ผ่าน' ในหน้าต่าง Test Explorer
การทดสอบที่ผ่านเกณฑ์พิสูจน์ได้ว่าระบบประปาทำงานได้ดี ต่อไปนี้คือคำศัพท์ที่คุณจะต้องใช้ในการเขียนข้อสอบจริง
Selenium คำสั่ง WebDriver ใน C #
C# ใช้อินเทอร์เฟซ 'IWebDriver' สำหรับการโต้ตอบกับเบราว์เซอร์ ต่อไปนี้คือหมวดหมู่ของคำสั่งที่พร้อมใช้งาน Selenium ใน C#
- คำสั่งเบราว์เซอร์
- คำสั่งองค์ประกอบเว็บ
- คำสั่งแบบเลื่อนลง
ตอนนี้อยู่ในนี้ Selenium บทเรียน C# มาศึกษากันเลย Selenium คำสั่ง WebDriver จะทำงานทีละคำสั่ง Java ส่วนที่เทียบเคียงกันได้นั้นแสดงให้เห็นในสิ่งนี้ สคริปต์ WebDriver ตัวแรก คำแนะนำ
คำสั่งด้านล่างนี้ยังคงเป็นคำสั่งปัจจุบัน IWebDriver พื้นผิวใน Selenium 4. ดังนั้นไวยากรณ์จึงยังคงเหมือนเดิม
คำสั่งเบราว์เซอร์:
ต่อไปนี้เป็นรายการคำสั่งเบราว์เซอร์ที่มีอยู่ใน C# ด้วย Selenium.
| ชื่อคำสั่ง | Descriptไอออน | วากยสัมพันธ์ |
|---|---|---|
| คำสั่ง URL | คำสั่งนี้ใช้สำหรับเปิดสิ่งที่ระบุไว้ URL ในเบราว์เซอร์ |
driver.Url = "https://www.guru99.com"
|
| ชื่อเรื่อง คำสั่ง | คำสั่งนี้ใช้เพื่อเรียกชื่อหน้าของหน้าเว็บที่เปิดอยู่ในปัจจุบัน |
String title = driver.Title
|
| คำสั่งเพจซอร์ส | คำสั่งนี้ใช้เพื่อดึงซอร์สโค้ดของหน้าเว็บที่เปิดอยู่ในปัจจุบัน |
String pageSource = driver.PageSource
|
| ปิดคำสั่ง | คำสั่งนี้ใช้เพื่อปิดอินสแตนซ์เบราว์เซอร์ที่เพิ่งเปิดใหม่ |
driver.Close(); |
| ออกจากคำสั่ง | คำสั่งนี้ใช้เพื่อปิดอินสแตนซ์ของเบราว์เซอร์ที่เปิดอยู่ทั้งหมด |
driver.Quit(); |
| คำสั่งกลับ | คำสั่งนี้ใช้เพื่อนำทางไปยังหน้าก่อนหน้าของประวัติเบราว์เซอร์ |
driver.Navigate().Back(); |
| คำสั่งไปข้างหน้า | คำสั่งนี้ใช้เพื่อนำทางไปยังหน้าถัดไปของประวัติเบราว์เซอร์ |
driver.Navigate().Forward() |
| รีเฟรชคำสั่ง | คำสั่งนี้ใช้เพื่อทำการรีเฟรชเบราว์เซอร์ |
driver.Navigate().Refresh() |
คำสั่งของเบราว์เซอร์จะทำงานกับหน้าต่าง ส่วนกลุ่มคำสั่งถัดไปจะทำงานกับสิ่งที่อยู่ภายในหน้าต่างนั้น
คำสั่ง WebElement
WebElement คือองค์ประกอบใดๆ บนหน้าเว็บ โดยใช้แท็ก HTML แทน ปุ่ม กล่องข้อความ ลิงก์ รูปภาพ ตาราง และเฟรม ล้วนเป็น WebElement ทั้งสิ้น Operaการทำงานขององค์ประกอบเหล่านั้นจะถูกกระตุ้นผ่านทาง IWebElement ส่วนต่อประสาน ในการโต้ตอบกับ WebElement เราต้องเริ่มจากสิ่งแรก ค้นหาองค์ประกอบ บนหน้าเว็บ จากนั้นจึงดำเนินการกับหน้าเว็บนั้น กลยุทธ์ที่มีอยู่จะกล่าวถึงใน ตัวระบุตำแหน่งใน Seleniumเครื่องมือสำหรับนักพัฒนาเบราว์เซอร์ หรือส่วนเสริม Firebug และ Firepath รุ่นเก่า (ซึ่งภาพหน้าจอด้านล่างเป็นรุ่นก่อนหน้า) สามารถใช้เพื่อระบุได้ XPath ของ WebElement
ต่อไปนี้คือคำสั่ง WebElement ที่มีให้ใช้งานในภาษา C#
| ชื่อคำสั่ง | Descriptไอออน | วากยสัมพันธ์ |
|---|---|---|
| คลิกคำสั่ง | คำสั่งนี้ใช้สำหรับคลิกบนองค์ประกอบบนเว็บ หากต้องการให้องค์ประกอบนั้นคลิกได้ องค์ประกอบนั้นจะต้องมองเห็นได้บนหน้าเว็บ คำสั่งนี้ใช้สำหรับการดำเนินการกับช่องกาเครื่องหมายและปุ่มตัวเลือกด้วยเช่นกัน |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.Click();
|
| คำสั่งที่ชัดเจน | คำสั่งนี้ใช้สำหรับการล้างเนื้อหาที่มีอยู่ของกล่องข้อความโดยเฉพาะ |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement"));
element.Clear();
|
| คำสั่ง SendKeys | คำสั่งนี้ใช้เพื่อป้อนค่าลงในกล่องข้อความ ค่าที่จะป้อนจะต้องส่งเป็นพารามิเตอร์ |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.SendKeys("guru99"); |
| คำสั่งที่แสดง | คำสั่งนี้ใช้เพื่อระบุว่าองค์ประกอบเฉพาะใดจะแสดงบนเว็บเพจหรือไม่ คำสั่งนี้ส่งคืนค่าบูลีน ซึ่งอาจเป็น true หรือ false ขึ้นอยู่กับความสามารถในการมองเห็นขององค์ประกอบบนเว็บ |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); Boolean status = element.Displayed; |
| คำสั่งที่เปิดใช้งาน | คำสั่งนี้ใช้เพื่อระบุว่ามีการเปิดใช้งานองค์ประกอบเว็บเฉพาะบนเว็บเพจหรือไม่ คำสั่งนี้ส่งคืนค่าบูลีน จริงหรือเท็จเป็นผล |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); Boolean status = element.Enabled; |
| คำสั่งที่เลือก | คำสั่งนี้ใช้เพื่อตรวจสอบว่าองค์ประกอบเว็บใดถูกเลือกไว้หรือไม่ คำสั่งนี้ใช้สำหรับช่องทำเครื่องหมาย ปุ่มตัวเลือก และการดำเนินการเลือก |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); Boolean status = element.Selected; |
| ส่งคำสั่ง: | คำสั่งนี้คล้ายกับคำสั่งคลิก ความแตกต่างอยู่ที่ว่าฟอร์ม HTML มีปุ่มประเภทส่งหรือไม่ ขณะที่คำสั่ง click คลิกที่ปุ่มใดๆ คำสั่ง send จะคลิกที่ปุ่มเฉพาะที่มีประเภท send เท่านั้น |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); element.submit();
|
| คำสั่งข้อความ | คำสั่งนี้ส่งคืนข้อความภายในของ Webelement คำสั่งนี้ส่งคืนค่าสตริงตามผลลัพธ์ |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); String text=element.Text; |
| คำสั่งแท็กชื่อ | คำสั่งนี้ส่งคืนแท็ก HTML ขององค์ประกอบเว็บ มันจะส่งกลับค่าสตริงเป็นผลลัพธ์ |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); String tagName = element.TagName; |
| คำสั่ง GetCSSValue: | วิธีการนี้ใช้เพื่อส่งคืนสีขององค์ประกอบเว็บในรูปแบบสตริง rgba (แดง เขียว น้ำเงิน และอัลฟ่า) |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); String color = element.getCSSValue; เอาท์พุต– หากสีขององค์ประกอบเป็นสีแดง ผลลัพธ์จะเป็น rgba(255,0,0,1) |
หมายเหตุเกี่ยวกับตัวอย่างข้างต้น: ตารางนี้แสดงไวยากรณ์ดั้งเดิม ในเวอร์ชันปัจจุบัน Selenium .NET สมาชิกจะถูกเขียนด้วยตัวพิมพ์ใหญ่แบบ Pascal — element.Submit() และ element.GetCssValue("color") - และ GetCssValue รับชื่อคุณสมบัติ CSS เป็นอาร์กิวเมนต์
คำสั่งแบบเลื่อนลง:
การดำเนินการดร็อปดาวน์ใน C# สามารถทำได้โดยใช้คลาส SelectElement
ต่อไปนี้เป็นการดำเนินการดรอปดาวน์ต่าง ๆ ที่มีใน C#
| ชื่อคำสั่ง | Descriptไอออน | วากยสัมพันธ์ |
|---|---|---|
| คำสั่ง SelectByText | คำสั่งนี้เลือกตัวเลือกของดรอปดาวน์ตามข้อความของตัวเลือก |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.SelectByText("Guru99"); |
| คำสั่ง SelectByIndex | คำสั่งนี้ใช้เพื่อเลือกตัวเลือกตามดัชนี ดัชนีของดรอปดาวน์เริ่มต้นที่ 0 |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.SelectByIndex("4"); |
| คำสั่ง SelectByValue | คำสั่งนี้ใช้เพื่อเลือกตัวเลือกตามค่าตัวเลือก |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.SelectByValue("Guru99"); |
| คำสั่งตัวเลือก | คำสั่งนี้ใช้เพื่อรับรายการตัวเลือกที่แสดงในแบบดรอปดาวน์ |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); List<IWebelement> options = select. Options; int size = options.Count; for(int i=0;i<options.size();i++) { String value = size.elementAt(i).Text; Console.writeLine(value); } โค้ดด้านบนจะพิมพ์ตัวเลือกทั้งหมดลงบนคอนโซลภายในเมนูแบบเลื่อนลง |
| คำสั่ง IsMultiple | คำสั่งนี้ใช้เพื่อตรวจสอบว่าเมนูแบบดรอปดาวน์นั้นเป็นแบบเลือกหลายรายการหรือไม่ เมนูแบบเลือกหลายรายการจะช่วยให้ผู้ใช้สามารถเลือกได้มากกว่าหนึ่งตัวเลือกในคราวเดียว คำสั่งนี้จะส่งคืนค่าบูลีน |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); Boolean status = select.IsMultiple(); |
| คำสั่งยกเลิกการเลือกทั้งหมด | คำสั่งนี้ใช้ในดรอปดาวน์แบบเลือกหลายรายการ จะล้างตัวเลือกที่เลือกไว้แล้ว |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectAll(); |
| คำสั่ง DeSelectByIndex | คำสั่งนี้จะยกเลิกการเลือกค่าที่เลือกไว้แล้วโดยใช้ดัชนี |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectByIndex("4"); |
| คำสั่ง DeSelectByValue | คำสั่งนี้จะยกเลิกการเลือกค่าที่เลือกไว้แล้วโดยใช้ค่าของมัน |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectByValue("Guru99"); |
| คำสั่ง DeSelectByText | คำสั่งนี้จะยกเลิกการเลือกค่าที่เลือกไว้แล้วโดยใช้ข้อความ |
IWebelement element = driver.FindElement(By.xpath("xpath of Webelement")); SelectElement select = new SelectElement(element); select.DeSelectByText("Guru99"); |
สคริปต์ทั้งสี่ด้านล่างนี้จะนำคำสั่งข้างต้นไปใช้กับ... Guruมีเว็บไซต์สาธิต 99 เว็บไซต์ แต่ละเว็บไซต์เป็นคลาสทดสอบ NUnit ที่สมบูรณ์และสามารถใช้งานได้จริง
Code ตัวอย่าง
ตัวอย่างที่ 1: คลิกลิงก์โดยใช้ XPATH Locator:
สถานการณ์การทดสอบ:
- ไปที่หน้าสาธิต Guru99 หน้าเว็บ – https://demo.guru99.com/test/guru99home/
- ขยายหน้าต่างให้ใหญ่สุด
- คลิกที่เมนู 'การทดสอบ'
- ปิดเบราว์เซอร์
using NUnit.Framework; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Guru99Demo { class CSS { IWebDriver m_driver; [Test] public void cssDemo() { m_driver = new ChromeDriver("D:\\3rdparty\\chrome"); m_driver.Url = "https://demo.guru99.com/test/guru99home/"; m_driver.Manage().Window.Maximize(); IWebelement link = m_driver.FindElement(By.XPath(".//*[@id='rt-header']//div[2]/div/ul/li[2]/a")); link.Click(); m_driver.Close(); } } }
ตัวอย่างที่ 2: การป้อนข้อมูลลงในข้อความBox และคลิกที่ปุ่มโดยใช้ตัวระบุตำแหน่ง XPATH:
สถานการณ์การทดสอบ:
- ไปที่ Guruหน้าสาธิต 99 – https://demo.guru99.com/test/guru99home/
- ป้อนข้อมูลลงในกล่องข้อความอีเมล์
- คลิกที่ปุ่มลงทะเบียน
using NUnit.Framework; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Guru99Demo { class CSS { IWebDriver m_driver; [Test] public void cssDemo() { m_driver = new ChromeDriver("G:\\"); m_driver.Url = "https://demo.guru99.com/test/guru99home/"; m_driver.Manage().Window.Maximize(); // Store locator values of email text box and sign up button IWebElement emailTextBox = m_driver.FindElement(By.XPath(".//*[@id='philadelphia-field-email']")); IWebElement signUpButton = m_driver.FindElement(By.XPath(".//*[@id='philadelphia-field-submit']")); emailTextBox.SendKeys("test123@gmail.com"); signUpButton.Click(); } } }
ตัวอย่างที่ 3: การป้อนข้อมูลลงในข้อความBox และคลิกที่ปุ่มโดยใช้ตัวระบุตำแหน่ง CSS:
สถานการณ์การทดสอบ:
- ไปที่ Guruหน้าสาธิต 99 – https://demo.guru99.com/test/guru99home/
- ป้อนข้อมูลลงในกล่องข้อความอีเมล์
- คลิกที่ปุ่มลงทะเบียน
using NUnit.Framework; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Guru99Demo { class CSS { IWebDriver m_driver; [Test] public void cssDemo() { m_driver = new ChromeDriver("G:\\"); m_driver.Url = "https://demo.guru99.com/test/guru99home/"; m_driver.Manage().Window.Maximize(); // Store locator values of email text box and sign up button IWebElement emailTextBox = m_driver.FindElement(By.CssSelector("input[id=philadelphia-field-email]")); IWebElement signUpButton = m_driver.FindElement(By.CssSelector("input[id=philadelphia-field-submit]")); emailTextBox.SendKeys("test123@gmail.com"); signUpButton.Click(); } } }
ตัวอย่างที่ 4: เลือกค่าในเมนูแบบเลื่อนลง:
สถานการณ์การทดสอบ:
- ไปที่ Guruหน้าสาธิต 99 – https://demo.guru99.com/test/guru99home/
- คลิกที่ SAP ลิงค์
- ป้อนข้อมูลลงในกล่องข้อความชื่อและอีเมล์
- เลือกค่าจากเมนูแบบเลื่อนลงหลักสูตร
- ปิดเบราว์เซอร์
using NUnit.Framework; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using OpenQA.Selenium.Support.UI; namespace Guru99Demo { class TestSelect { IWebDriver m_driver; [Test] public void selectDemo() { m_driver = new ChromeDriver("G:\\"); m_driver.Url = "https://demo.guru99.com/test/guru99home/"; m_driver.Manage().Window.Maximize(); IWebElement course = m_driver.FindElement(By.XPath(".//*[@id='awf_field-91977689']")); var selectTest = new SelectElement(course); // Select a value from the dropdown selectTest.SelectByValue("sap-abap"); } } }
































