ซีลีเนียม - Webdriver

WebDriver เป็นเครื่องมือสำหรับการทดสอบเว็บแอปพลิเคชันโดยอัตโนมัติ เป็นที่รู้จักกันแพร่หลายว่าซีลีเนียม 2.0 WebDriver ใช้กรอบงานพื้นฐานที่แตกต่างกันในขณะที่ Selenium RC ใช้ JavaScript Selenium-Core ที่ฝังอยู่ภายในเบราว์เซอร์ซึ่งมีข้อ จำกัด บางประการ WebDriver โต้ตอบโดยตรงกับเบราว์เซอร์โดยไม่มีตัวกลางใด ๆ ซึ่งแตกต่างจาก Selenium RC ที่ขึ้นอยู่กับเซิร์ฟเวอร์ ใช้ในบริบทต่อไปนี้ -

  • การทดสอบหลายเบราว์เซอร์รวมถึงฟังก์ชันการทำงานที่ได้รับการปรับปรุงสำหรับเบราว์เซอร์ซึ่ง Selenium RC (Selenium 1.0) ไม่รองรับ

  • การจัดการหลายเฟรมหน้าต่างเบราว์เซอร์หลายหน้าต่างป๊อปอัปและการแจ้งเตือน

  • การนำทางเพจที่ซับซ้อน

  • การนำทางของผู้ใช้ขั้นสูงเช่นการลากแล้วปล่อย

  • องค์ประกอบ UI ที่ใช้ AJAX

สถาปัตยกรรม

WebDriver อธิบายได้ดีที่สุดด้วยแผนภาพสถาปัตยกรรมอย่างง่ายดังที่แสดงด้านล่าง

ซีลีเนียม RC Vs WebDriver

ซีลีเนียม RC Selenium WebDriver
สถาปัตยกรรมของ Selenium RC มีความซับซ้อนเนื่องจากเซิร์ฟเวอร์ต้องเปิดใช้งานก่อนเริ่มการทดสอบ สถาปัตยกรรมของ WebDriver นั้นง่ายกว่า Selenium RC เนื่องจากควบคุมเบราว์เซอร์จากระดับ OS
เซิร์ฟเวอร์ Selenium ทำหน้าที่เป็นคนกลางระหว่างเบราว์เซอร์และคำสั่ง Selenese WebDriver โต้ตอบโดยตรงกับเบราว์เซอร์และใช้เอ็นจิ้นของเบราว์เซอร์เพื่อควบคุม
การเรียกใช้สคริปต์ Selenium RC จะช้ากว่าเนื่องจากใช้ Javascript เพื่อโต้ตอบกับ RC WebDriver เร็วกว่าเนื่องจากโต้ตอบโดยตรงกับเบราว์เซอร์
Selenium RC ไม่สามารถรองรับการทำงานแบบไร้หัวได้เนื่องจากต้องใช้เบราว์เซอร์จริงเพื่อใช้งานได้ WebDriver สามารถรองรับการดำเนินการแบบไร้หัว
เป็น API ที่เรียบง่ายและมีขนาดเล็ก API ที่ซับซ้อนและค่อนข้างใหญ่เมื่อเทียบกับ RC
API เชิงวัตถุน้อยลง API เชิงวัตถุล้วนๆ
ไม่สามารถทดสอบแอปพลิเคชันมือถือ สามารถทดสอบแอปพลิเคชัน iPhone / Android

การเขียนสคริปต์โดยใช้ WebDriver

ให้เราเข้าใจวิธีการทำงานกับ WebDriver สำหรับการสาธิตเราจะใช้https://www.calculator.net/. เราจะทำการ "เครื่องคำนวณเปอร์เซ็นต์" ซึ่งอยู่ภายใต้ "เครื่องคำนวณคณิตศาสตร์" เราได้ดาวน์โหลด WebDriver JAR ที่จำเป็นแล้ว โปรดดูบท "การตั้งค่าสิ่งแวดล้อม" สำหรับรายละเอียด

Step 1 - เปิด "Eclipse" จากโฟลเดอร์ Extracted Eclipse

Step 2 - เลือกพื้นที่ทำงานโดยคลิกปุ่ม "เรียกดู"

Step 3 - ตอนนี้สร้าง 'โครงการใหม่' จากเมนู 'ไฟล์'

Step 4 - ป้อนชื่อโครงการและคลิก 'ถัดไป'

Step 5- ไปที่ Libraries Tab แล้วเลือก JAR ทั้งหมดที่เราดาวน์โหลดมา เพิ่มการอ้างอิงไปยังโฟลเดอร์ Selenium WebDriver Library ของ JAR และ selenium-java-2.42.2.jar และ selenium-java-2.42.2-srcs.jar

Step 6 - สร้างแพ็คเกจตามที่แสดงด้านล่าง

Step 7 - คลิกขวาที่แพ็กเกจแล้วเลือก 'ใหม่' >> 'คลาส' เพื่อสร้าง 'คลาส'

Step 8 - ตอนนี้ตั้งชื่อคลาสและทำให้เป็นฟังก์ชันหลัก

Step 9 - โครงร่างของคลาสแสดงดังต่อไปนี้

Step 10- ตอนนี้ได้เวลาเขียนโค้ดแล้ว สคริปต์ต่อไปนี้เข้าใจง่ายกว่าเนื่องจากมีข้อคิดเห็นฝังอยู่เพื่ออธิบายขั้นตอนอย่างชัดเจน โปรดดูบท "ตัวระบุตำแหน่ง" เพื่อทำความเข้าใจวิธีการจับภาพคุณสมบัติของวัตถุ

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;

public class webdriverdemo {
   public static void main(String[] args) {
   
      WebDriver driver = new FirefoxDriver();
      //Puts an Implicit wait, Will wait for 10 seconds before throwing exception
      driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
      
      //Launch website
      driver.navigate().to("http://www.calculator.net/");
      
      //Maximize the browser
      driver.manage().window().maximize();
      
      // Click on Math Calculators
      driver.findElement(By.xpath(".//*[@id = 'menu']/div[3]/a")).click();
      
      // Click on Percent Calculators
      driver.findElement(By.xpath(".//*[@id = 'menu']/div[4]/div[3]/a")).click();
      
      // Enter value 10 in the first number of the percent Calculator
      driver.findElement(By.id("cpar1")).sendKeys("10");
      
      // Enter value 50 in the second number of the percent Calculator
      driver.findElement(By.id("cpar2")).sendKeys("50");
      
      // Click Calculate Button
      driver.findElement(By.xpath(".//*[@id = 'content']/table/tbody/tr[2]/td/input[2]")).click();

      
      // Get the Result Text based on its xpath
      String result =
         driver.findElement(By.xpath(".//*[@id = 'content']/p[2]/font/b")).getText();

      
      // Print a Log In message to the screen
      System.out.println(" The Result is " + result);
      
      //Close the Browser.
      driver.close();
   }
}

Step 11 - ผลลัพธ์ของสคริปต์ข้างต้นจะถูกพิมพ์ในคอนโซล

คำสั่งที่ใช้มากที่สุด

ตารางต่อไปนี้แสดงรายการคำสั่งที่ใช้บ่อยที่สุดใน WebDriver พร้อมกับไวยากรณ์

ซีเนียร์ คำสั่งและคำอธิบาย
1

driver.get("URL")

เพื่อนำทางไปยังแอปพลิเคชัน

2

element.sendKeys("inputtext")

ป้อนข้อความลงในช่องป้อนข้อมูล

3

element.clear()

ล้างเนื้อหาจากช่องป้อนข้อมูล

4

select.deselectAll()

ยกเลิกการเลือก OPTION ทั้งหมดจาก SELECT แรกในเพจ

5

select.selectByVisibleText("some text")

เลือก OPTION ด้วยอินพุตที่ระบุโดยผู้ใช้

6

driver.switchTo().window("windowName")

ย้ายโฟกัสจากหน้าต่างหนึ่งไปยังอีกหน้าต่างหนึ่ง

7

driver.switchTo().frame("frameName")

แกว่งจากเฟรมหนึ่งไปอีกเฟรมหนึ่ง

8

driver.switchTo().alert()

ช่วยในการจัดการการแจ้งเตือน

9

driver.navigate().to("URL")

ไปที่ URL

10

driver.navigate().forward()

เพื่อนำทางไปข้างหน้า

11

driver.navigate().back()

เพื่อย้อนกลับ

12

driver.close()

ปิดเบราว์เซอร์ปัจจุบันที่เกี่ยวข้องกับไดรเวอร์

13

driver.quit()

ออกจากไดรเวอร์และปิดหน้าต่างที่เกี่ยวข้องทั้งหมดของไดรเวอร์นั้น

14

driver.refresh()

รีเฟรชหน้าปัจจุบัน