วิธีจัดการการรับรองความถูกต้องของพร็อกซีใน Selenium ไดรเวอร์เว็บ

⚡ สรุปอย่างชาญฉลาด

การตรวจสอบสิทธิ์พร็อกซีใน Selenium WebDriver จะจัดการหน้าต่างป๊อปอัพขอข้อมูลรับรองที่ปรากฏขึ้นเมื่อเบราว์เซอร์เชื่อมต่อผ่านพร็อกซีเซิร์ฟเวอร์ที่ปลอดภัย เนื่องจาก Selenium ไม่สามารถใช้งานไดอะล็อกดั้งเดิมได้โดยตรง มีสองวิธีที่ใช้เครื่องมือ AutoIt และการแจ้งเตือนในตัว

  • 🛡️ บทบาทพร็อกซี: พร็อกซีคือตัวกลางที่เพิ่มความเป็นส่วนตัว ความปลอดภัย และการกรองเนื้อหา
  • 🔀 SOCKS เทียบกับ HTTP: SOCKS ไม่ได้ตีความข้อมูล ในขณะที่พร็อกซี HTTP อ่านเฉพาะคำขอ HTTP เท่านั้น
  • 🪟 ป๊อปอัปแบบเนทีฟ: Selenium ไม่สามารถจัดการกับกล่องโต้ตอบของระบบปฏิบัติการได้ ดังนั้นจึงจำเป็นต้องขอความช่วยเหลือจากภายนอก
  • 🛠️ วิธีการใช้งาน AutoIt: สคริปต์ AutoIt ที่คอมไพล์แล้วจะส่งชื่อผู้ใช้และรหัสผ่านไปยังหน้าต่างป๊อปอัพ
  • 🚨 วิธีการแจ้งเตือน: เปลี่ยนไปใช้การแจ้งเตือนและส่งข้อมูลประจำตัวด้วย sendKeys จากนั้นกดยอมรับ

จัดการการตรวจสอบสิทธิ์พร็อกซีใน Selenium ไดรเวอร์เว็บ

พร็อกซี่คืออะไร?

พร็อกซีทำหน้าที่เป็นตัวกลางระหว่างไคลเอนต์ที่ส่งคำขอและเซิร์ฟเวอร์ตอบสนอง การใช้พร็อกซีหลักคือเพื่อรักษาความเป็นส่วนตัวและการห่อหุ้มระหว่างระบบโต้ตอบหลายระบบ

พร็อกซียังสามารถเพิ่มการรักษาความปลอดภัยอีกชั้นหนึ่งบนเว็บโดยทำหน้าที่เป็นไฟร์วอลล์ระหว่างไคลเอนต์และเว็บเซิร์ฟเวอร์ โดยเฉพาะอย่างยิ่งจะใช้เมื่อเว็บไซต์ที่ลูกค้าใช้ต้องมีป้ายกำกับว่าอนุญาตหรือบล็อกตามเนื้อหาของเว็บไซต์

กระบวนการนี้เรียกว่า 'การกรองเนื้อหา' และมักใช้ในสถาบันการศึกษา สำนักงานบริษัท ฯลฯ การกรองเนื้อหาสามารถทำได้ง่าย ๆ ด้วยความช่วยเหลือของพร็อกซี ในแง่อินเทอร์เน็ต สามารถใช้พรอกซีเป็นเซิร์ฟเวอร์แยกต่างหากซึ่งอยู่ระหว่างเครื่องไคลเอนต์และเว็บจริงหรือเซิร์ฟเวอร์ฐานข้อมูลที่ตอบสนอง

ความแตกต่างระหว่าง SOCKS และ HTTP Proxy

ถุงเท้า พร็อกซี HTTP
SOCKS ย่อมาจาก ซ็อกเก็ตที่ปลอดภัย โดยทั่วไปจะใช้เป็นไฟร์วอลล์ระหว่างไคลเอนต์และเซิร์ฟเวอร์ HTTP Proxy ยังสามารถใช้เป็นไฟร์วอลล์ระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ได้ แต่สามารถใช้ได้เฉพาะกับคำขอ HTTP เท่านั้น
SOCKS ไม่ตีความข้อมูลที่มีการแลกเปลี่ยน HTTP Proxy ตีความข้อมูลที่มีการแลกเปลี่ยนระหว่างไคลเอนต์และเซิร์ฟเวอร์
ช้าลงในแง่ของประสิทธิภาพ ประสิทธิภาพที่ดีกว่าเมื่อเทียบกับ SOCKS

วิธีจัดการพรอกซีใน Selenium เว็บไดรเวอร์ใน Chrome

การตรวจสอบสิทธิ์ HTTP Proxy ด้วย Selenium ใน Chrome สามารถจัดการได้โดยใช้วิธีการต่อไปนี้

  • การใช้เครื่องมือ AutoIt
  • การใช้การแจ้งเตือน

การใช้เครื่องมือ AutoIt

AutoIt เป็นเครื่องมือจากบริษัทภายนอกที่ใช้สำหรับการทำงานอัตโนมัติบนเดสก์ท็อปของ Windows Selenium จัดการเฉพาะป๊อปอัปและหน้าต่างบนเว็บเท่านั้น ไม่สามารถจัดการการควบคุมระบบปฏิบัติการได้โดยใช้ Selenium.

ซึ่งจำเป็นต้องใช้เครื่องมือภายนอกของบุคคลที่สาม เช่น AutoIt เพื่อทำการผสานรวมเข้าด้วยกัน Seleniumด้วยเหตุนี้ AutoIt จึงถูกใช้บ่อยที่สุดสำหรับการจัดการการอัปโหลดไฟล์และการดาวน์โหลดไฟล์บนเว็บไซต์

ในการใช้งาน AutoIt คุณต้องดาวน์โหลดและติดตั้งซอฟต์แวร์ AutoIt บนเครื่องคอมพิวเตอร์ของคุณก่อน

การดาวน์โหลดและติดตั้งโปรแกรม AutoIt นั้นได้อธิบายไว้แล้วในหัวข้อนี้ บทความ.

เปิดโปรแกรม – เครื่องมือ Autoit – โปรแกรมแก้ไขสคริปต์ SciTE และเพิ่มสคริปต์ AutoIt ที่กล่าวถึงด้านล่างในตัวแก้ไข Autoit และบันทึกเป็น 'ProxyAuthentication.au3' ในระบบของคุณ

รวบรวมไฟล์และแปลงเป็น 'ProxyAuthentication.exe'

In Eclipseเพิ่มไฟล์ AutoIt ลงไป Selenium สคริปต์และเรียกใช้

ด้านล่างนี้คือสคริปต์ AutoIt สำหรับการตรวจสอบสิทธิ์พร็อกซี HTTP

Send("guru99{ENTER}")
Send("guru99{ENTER}")

คุณต้องส่งไฟล์ AutoIt เพื่อเรียกใช้งาน Selenium webdriver โดยใช้โค้ดด้านล่าง

แหล่ง Code:

package Guru99Demo;
import java.io.IOException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class AutoItDemo {
    public static void main(String[] args) throws IOException {
        System.setProperty("webdriver.chrome.driver", "D:\\ chromedriver.exe");;
        WebDriver driver = new ChromeDriver();
        driver.get("https://demo.guru99.com/test/basic_auth.php");
        //Passing the AutoIt Script to Selenium	
        Runtime.getRuntime().exec("D:\\Data_Personal\\ProxyAuthentication.exe");
    }
}

Code คำอธิบาย:

  • ในขั้นตอนแรก คุณกำลังเริ่มต้นอินสแตนซ์ของไดรเวอร์ Chrome โดยการตั้งค่าคุณสมบัติของระบบให้ชี้ไฟล์ chromedriver.exe
  • ในขั้นตอนที่สอง คุณจะทำการเริ่มต้นอ็อบเจ็กต์ของเว็บไดรเวอร์และส่งเว็บไซต์เข้าไป URL โดยใช้เมธอด get
  • สุดท้ายนี้ คุณกำลังส่งชื่อผู้ใช้และรหัสผ่านไปยังป๊อปอัพการตรวจสอบสิทธิ์ของ HTTP Proxy โดยใช้ไฟล์สคริปต์ AutoIt

Code Output:

การจัดการการแจ้งเตือนชื่อผู้ใช้โดยใช้ AutoIt
การจัดการการแจ้งเตือนชื่อผู้ใช้โดยใช้ AutoIt
การจัดการการแจ้งเตือนรหัสผ่านโดยใช้ AutoIt

การจัดการการแจ้งเตือนรหัสผ่านโดยใช้ AutoIt
หน้าจอความสำเร็จในการรับรองความถูกต้องของพร็อกซี

หน้าจอความสำเร็จในการรับรองความถูกต้องของพร็อกซี

การใช้การแจ้งเตือน

การแจ้งเตือนนั้นเรียบง่ายและมีฟีเจอร์ในตัวที่จัดทำโดย Selenium ไดรเวอร์เว็บ คุณสามารถจัดการป๊อปอัปการรับรองความถูกต้องของพร็อกซีได้โดยใช้ Selenium ไดรเวอร์เว็บโดยสลับไปที่การแจ้งเตือนการตรวจสอบสิทธิ์พร็อกซี HTTP และส่งชื่อผู้ใช้และรหัสผ่านไปยังการแจ้งเตือนโดยตรง ด้วยความช่วยเหลือของวิธีส่งคีย์

ตัวอย่าง:

สถานการณ์การทดสอบ:

จัดการป๊อปอัปการตรวจสอบสิทธิ์ HTTP Proxy บนเว็บไซต์: https://demo.guru99.com/test/basic_auth.php โดยใช้การแจ้งเตือนใน Selenium ไดรเวอร์เว็บ

ตัวอย่างซอร์สโค้ด:

package Guru99Demo;
import java.io.IOException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class AlertsDemo {
    public static void main(String args[]) throws IOException {
        System.setProperty("webdriver.chrome.driver", "D:\\Data_Personal\\Software\\chromedriver_win32\\chromedriver.exe");;
        WebDriver driver = new ChromeDriver();
        driver.get("https://demo.guru99.com/test/basic_auth.php");
        // Handling Username alert
        driver.switchTo().alert().sendKeys("guru99");
        driver.switchTo().alert().accept();
        // Handling Password alert
        driver.switchTo().alert().sendKeys("guru99");
        driver.switchTo().alert().accept();
    }
}

Code เอาท์พุต

การตรวจสอบสิทธิ์พร็อกซีสำเร็จแล้ว

Code คำอธิบาย:

  • เริ่มแรก คุณกำลังสร้างอินสแตนซ์ของไดรเวอร์ Chrome โดยตั้งค่าคุณสมบัติ webdriver ให้ชี้ตำแหน่งของไฟล์ chromedriver.exe
  • จากนั้น คุณกำลังเปิด URL ของเว็บไซต์ที่ต้องการโดยการผ่านไป URL เป็นพารามิเตอร์ให้กับเมธอด driver.get()
  • เคย URL เมื่อเปิดการแจ้งเตือนแล้ว คุณกำลังเปลี่ยนไปใช้การแจ้งเตือนชื่อผู้ใช้และส่งชื่อผู้ใช้ – guru99 จากนั้นคุณคลิกปุ่ม OK ในการแจ้งเตือนโดยใช้วิธี alert.accept
  • จากนั้น คุณกำลังเปลี่ยนไปใช้การแจ้งเตือนรหัสผ่านและส่งรหัสผ่าน – guru99 จากนั้นคุณคลิกที่ปุ่มตกลงบนการแจ้งเตือนโดยใช้วิธี alert.accept

คำถามที่พบบ่อย

คุณสามารถฝังข้อมูลรับรองได้โดยใช้ https://user:pass@site.com แต่เบราว์เซอร์ Chrome รุ่นใหม่ๆ และ Firefox ปิดกั้นสิ่งนี้เพื่อความปลอดภัย ปัจจุบันการแจ้งเตือนหรือส่วนขยายของเบราว์เซอร์มีความน่าเชื่อถือมากกว่าสำหรับการตรวจสอบสิทธิ์พร็อกซี

AutoIt ทำงานอัตโนมัติ Windows ปุ่มควบคุมบนเดสก์ท็อปที่ Selenium ไม่สามารถเข้าถึงได้ เช่น ป๊อปอัพการตรวจสอบสิทธิ์แบบดั้งเดิมและไดอะล็อกการอัปโหลดไฟล์ คุณคอมไพล์สคริปต์ AutoIt เป็นไฟล์ปฏิบัติการและเรียกใช้จาก Selenium รหัส.

พร็อกซีจะเปลี่ยนเส้นทางการรับส่งข้อมูลสำหรับแอปพลิเคชันหรือเบราว์เซอร์เฉพาะ โดยส่วนใหญ่จะซ่อนที่อยู่ IP หรือกรองเนื้อหา ในขณะที่ VPN จะเข้ารหัสการรับส่งข้อมูลทั้งหมดของอุปกรณ์ทั่วทั้งระบบ ทำให้มีความเป็นส่วนตัวมากกว่าพร็อกซีมาตรฐาน

ใช่แล้ว เครื่องมือทดสอบที่ขับเคลื่อนด้วย AI จะตรวจจับกล่องโต้ตอบการตรวจสอบสิทธิ์ แทรกข้อมูลประจำตัวที่บันทึกไว้ และแก้ไขตัวเองเมื่อพฤติกรรมของป๊อปอัพเปลี่ยนแปลงไป ช่วยลดการพึ่งพาสคริปต์ AutoIt ที่ไม่เสถียรในเบราว์เซอร์ต่างๆ

เครื่องมือ AI จะสลับพร็อกซีอย่างชาญฉลาด ตรวจจับคำขอที่ถูกบล็อก และปรับเวลารอเมื่อมีข้อความแจ้งให้ยืนยันตัวตนปรากฏขึ้น ระบบอัตโนมัตินี้ช่วยเพิ่มเสถียรภาพในการทดสอบสำหรับเว็บไซต์ที่อยู่เบื้องหลังพร็อกซีขององค์กรหรือพร็อกซีที่ใช้กรองเนื้อหา

ใช่. Selenium 4. เพิ่มการรองรับ Chrome DevTools Protocol ทำให้คุณสามารถตั้งค่าข้อมูลรับรอง HTTP ผ่านโปรแกรมและจัดการการตรวจสอบสิทธิ์พื้นฐานได้ หลีกเลี่ยงการใช้ AutoIt ในสถานการณ์พร็อกซีหลายๆ กรณี

สรุปโพสต์นี้ด้วย: