ตัวเลือก Chrome และความสามารถที่ต้องการใน Selenium ไดรเวอร์เว็บ

Chrome Options Class คืออะไร

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

ตัวอย่าง:

ตัวอย่างด้านล่างแสดงวิธีการเปิดเบราว์เซอร์ Chrome ในโหมดขยายใหญ่สุดโดยใช้คลาส ChromeOptions เราจำเป็นต้องส่งอินสแตนซ์ของคลาส ChromeOptions ไปยังการเริ่มต้นไดรเวอร์เว็บ

ChromeOptions options = new ChromeOptions()
options.addArgument("start-maximized");
ChromeDriver driver = new ChromeDriver(options);

ด้านล่างนี้คือรายการอาร์กิวเมนต์ที่มีอยู่และใช้บ่อยที่สุดสำหรับคลาส ChromeOptions

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

คลาสความสามารถที่ต้องการ

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

ตัวอย่าง:

ตัวอย่างด้านล่างแสดงวิธีการเปิดใช้งานเบราว์เซอร์ Chrome เพื่อยอมรับใบรับรอง SSL บนเว็บไซต์โดยค่าเริ่มต้นโดยใช้ความสามารถที่ต้องการสำหรับคลาส Chrome

// Create an object of desired capabilities class with Chrome driver
DesiredCapabilities SSLCertificate = DesiredCapabilities.chrome();
// Set the pre defined capability – ACCEPT_SSL_CERTS value to true
SSLCertificate.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
// Open a new instance of chrome driver with the desired capability
WebDriver driver = new ChromeDriver(SSLCertificate);

ด้านล่างนี้คือประเภทความสามารถที่กำหนดไว้ล่วงหน้าที่ใช้บ่อยที่สุด

ชื่อความสามารถ Descriptไอออน
ยอมรับ_SSL_CERTS คุณสมบัตินี้บอกให้เบราว์เซอร์ยอมรับใบรับรอง SSL ตามค่าเริ่มต้น
PLATFORM_NAME คุณสมบัตินี้ใช้เพื่อตั้งค่าแพลตฟอร์มระบบปฏิบัติการที่ใช้ในการเข้าถึงเว็บไซต์
เบราว์เซอร์_NAME คุณสมบัตินี้ใช้เพื่อตั้งชื่อเบราว์เซอร์สำหรับอินสแตนซ์ไดรเวอร์เว็บ
VERSION คุณสมบัตินี้ใช้ในการตั้งค่าเวอร์ชันของเบราว์เซอร์

ตัวเลือก Chrome สำหรับส่วนขยาย Adblocker

ส่วนขยาย Adblocker ของเบราว์เซอร์ Chrome สามารถจัดการได้โดยใช้ ChromeDriver Options และ Desired Capabilities class ด้านล่างนี้เป็นขั้นตอนในการเข้าถึง AdBlockส่วนขยายบนเบราว์เซอร์ Chrome โดยใช้คลาส Desired Capabilities

ขั้นตอน 1) AdBlockต้องติดตั้งส่วนขยาย er บนเบราว์เซอร์ Chrome ก่อนที่จะใช้คลาสตัวเลือก Chrome

ขั้นตอน 2) แยกไฟล์ CRX ที่เกี่ยวข้อง AdBlockเอ้อขยายผ่าน http://crxextractor.com/

ขั้นตอน 3) ส่งเส้นทางไฟล์ CRX ที่ดาวน์โหลดไปยังคลาสตัวเลือก Chrome

ขั้นตอน 4) สร้างอินสแตนซ์ของไดรเวอร์เว็บโดยใช้คลาสความสามารถที่ต้องการและตัวเลือก Chrome ใน Selenium วัตถุ

ตัวอย่าง:

ตัวอย่างด้านล่างสาธิตวิธีเปิดใช้งานส่วนขยายตัวบล็อกโฆษณาบนเบราว์เซอร์ Chrome โดยใช้คลาสตัวเลือก Chrome และความสามารถที่ต้องการ

ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("Path to CRX File"));
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
ChromeDriver driver = new ChromeDriver(capabilities);

แยกไฟล์ CRX

ขั้นตอนด้านล่างสาธิตกระบวนการแยกไฟล์ CRX ผ่าน Ad Blocker ผ่านทางเว็บไซต์ – http://crxextractor.com/

ขั้นตอน 1) ไปที่ http://crxextractor.com/ และคลิกปุ่มเริ่ม

แยกไฟล์ CRX

ขั้นตอน 2) ป้อนส่วนขยาย Chrome – Ad Blocker URL ใต้กล่องข้อความ URL สำหรับ Adblock บน Chrome เว็บสโตร์คือ https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighmmpiobklfepjocnamgkkbiglidom

และคลิกตกลง

แยกไฟล์ CRX

ขั้นตอน 3) เมื่อคลิกปุ่ม OK ป้ายของปุ่มจะเปลี่ยนเป็น Get .CRX ดังภาพด้านล่าง คลิกที่ปุ่มรับ .CRX ไฟล์ CRX ที่เกี่ยวข้องกับนามสกุลจะถูกดาวน์โหลด

แยกไฟล์ CRX

ขั้นตอน 4) บันทึกไฟล์ลงในเครื่องท้องถิ่น จดบันทึกเส้นทางที่บันทึกไว้ ขั้นตอนต่อไปคือการส่งเส้นทางที่บันทึกไว้ไปยังคลาสตัวเลือก Chrome

รหัสตัวอย่าง:

  1. คุณจะเห็นโฆษณาที่ https://demo.guru99.com/ ดังต่อไปนี้

แยกไฟล์ CRX

  1. ด้วยระบบเส้นทาง AdBlockส่วนขยายที่เปิดใช้งานบนโฆษณาเบราว์เซอร์ Chrome ควรปิดใช้งาน
package adblock;
import java.io.File;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;


public class AdblockDemo {
public static void main(String[] args)  {
	
	System.setProperty("webdriver.chrome.driver","X://chromedriver.exe");		
	ChromeOptions options = new ChromeOptions();
	options.addExtensions(new File("X://extension_3_40_1_0.crx")); 
	DesiredCapabilities capabilities = new DesiredCapabilities();
	capabilities.setCapability(ChromeOptions.CAPABILITY, options);
	options.merge(capabilities);
	ChromeDriver driver = new ChromeDriver(options);
	driver.get("https://demo.guru99.com/test/simple_context_menu.html");
	driver.manage().window().maximize();
	//driver.quit();
	}
	
}

คำอธิบายรหัส:

  1. ในตอนแรก คุณต้องกำหนดเส้นทางไปยังไฟล์ chromedriver.exe โดยใช้วิธี set property เนื่องจากคุณใช้เบราว์เซอร์ Chrome ในการทดสอบ
  2. คุณต้องกำหนดเส้นทางไปยังไฟล์ CRX เพื่อเพิ่มวิธีการขยาย
  3. จากนั้นคุณจะต้องสร้างออบเจ็กต์ของ Chrome Desired Capabilities Selenium คลาสและส่งต่อไปยังอินสแตนซ์ไดรเวอร์เว็บ จาก Selenium เวอร์ชัน 3.8.1 คลาสความสามารถของไดรเวอร์เลิกใช้แล้ว และคุณต้องรวมวัตถุความสามารถเข้ากับวัตถุตัวเลือก Chrome ก่อนที่จะส่งผ่านอาร์กิวเมนต์เดียวกันกับตัวสร้างไดรเวอร์ Chrome
  4. เปิด URL – https://demo.guru99.com/test/simple_context_menu.html โดยเปิดใช้งานส่วนขยาย Ad Blocker
  5. ขยายใหญ่สุดและปิดเบราว์เซอร์

หมายเหตุ: เรากำลังเปิดใช้งาน AdBlockเอ้อนามสกุล บนเบราว์เซอร์ Chrome ผ่านสคริปต์อัตโนมัติแทนการเปิดใช้งานส่วนขยาย Adblocker ด้วยตนเองบนเบราว์เซอร์ Chrome ไฟล์ CRX เป็นวิธีการเข้าถึงส่วนขยาย Adblocker โดยใช้สคริปต์อัตโนมัติ

Output:

เบราว์เซอร์ Chrome จะถูกเปิดใช้งานด้วย AdBlockส่วนขยายนี้เปิดใช้งานตามด้านล่างโดยไม่มีโฆษณาใด ๆ

แยกไฟล์ CRX

ตัวเลือก Chrome สำหรับโหมดไม่ระบุตัวตน

ตัวเลือก Chrome สามารถใช้สำหรับโหมดไม่ระบุตัวตนได้โดยใช้อาร์กิวเมนต์ที่กำหนดไว้ล่วงหน้า –ไม่ระบุนาม.

ด้านล่างนี้เป็นโค้ดตัวอย่างเพื่อทำสิ่งเดียวกันให้สำเร็จ

รหัสตัวอย่าง:

package test;
import java.io.File;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;

public class Incognito{
public static void main(String[] args) {
	// TODO Auto-generated method stub
	System.setProperty("webdriver.chrome.driver","X://chromedriver.exe");
	ChromeOptions options = new ChromeOptions();
	options.addArguments("--incognito");
	DesiredCapabilities capabilities = new DesiredCapabilities();
	capabilities.setCapability(ChromeOptions.CAPABILITY, options);
	options.merge(capabilities);
	ChromeDriver driver = new ChromeDriver(options);		
	driver.get("https://demo.guru99.com/test/simple_context_menu.html");
	driver.manage().window().maximize();		
	//driver.quit();
	}
	}

คำอธิบายรหัส:

  1. ในตอนแรก คุณต้องกำหนดเส้นทางไปยังไฟล์ chromedriver.exe โดยใช้วิธี set property เนื่องจากคุณใช้เบราว์เซอร์ Chrome ในการทดสอบ
  2. จากนั้นคุณจะต้องสร้างออบเจ็กต์ของคลาส Chrome Options และส่งต่อไปยังอินสแตนซ์ไดรเวอร์เว็บ เนื่องจากเราต้องการเปิดเบราว์เซอร์ Chrome ในโหมดไม่ระบุตัวตน คุณต้องส่งอาร์กิวเมนต์ –ไม่ระบุตัวตน ไปยังคลาสตัวเลือก Chrome
  3. จากนั้น สร้างอ็อบเจ็กต์ของคลาส Desired Capabilities และรวมอ็อบเจ็กต์คลาส Desired Capabilities กับอ็อบเจ็กต์คลาส Chrome Options โดยใช้วิธีการผสาน
  4. คุณต้องสร้างอ็อบเจ็กต์ของคลาส Chrome Driver และส่งผ่านอ็อบเจ็กต์ Chrome Options เป็นอาร์กิวเมนต์
  5. ในที่สุด เราต้องส่ง URL – https://demo.guru99.com/test/simple_context_menu.html ไปที่วิธี driver.get
  6. ขยายใหญ่สุดและปิดเบราว์เซอร์

Output:

หน้าต่างเบราว์เซอร์ Chrome จะเปิดขึ้นในโหมดไม่ระบุตัวตนดังต่อไปนี้

ตัวเลือก Chrome สำหรับโหมดไม่ระบุตัวตน

ตัวเลือก Chrome สำหรับ Headless Chrome

เบราว์เซอร์แบบไม่มีส่วนหัวจะทำงานอยู่เบื้องหลัง คุณจะไม่เห็น GUI ของเบราว์เซอร์หรือการทำงานต่างๆ ที่เกิดขึ้น

ตัวเลือก Chrome สำหรับการใช้งานเบราว์เซอร์ Chrome ในโหมดหัวขาดสามารถทำได้โดยใช้อาร์กิวเมนต์ที่กำหนดไว้ล่วงหน้า -หัวขาด.

โค้ดตัวอย่างเพื่อให้บรรลุผลตามที่กล่าวไว้ด้านล่าง

ตัวอย่าง:

package test;
import java.io.File;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;


public class HeadlessModeDemo {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.setProperty("webdriver.chrome.driver","X://chromedriver.exe");
		ChromeOptions options = new ChromeOptions();
		options.addArguments("--headless");
		DesiredCapabilities capabilities = new DesiredCapabilities();
		capabilities.setCapability(ChromeOptions.CAPABILITY, options);
		options.merge(capabilities);
		ChromeDriver driver = new ChromeDriver(options);		
		driver.get("https://demo.guru99.com/");
		driver.manage().window().maximize();
		String title = driver.getTitle();
		System.out.println("Page Title: " +title);
		driver.quit();
		}


}

คำอธิบายรหัส:

  1. ในตอนแรก คุณต้องกำหนดเส้นทางไปยังไฟล์ chromedriver.exe โดยใช้วิธี set property เนื่องจากคุณใช้เบราว์เซอร์ Chrome ในการทดสอบ
  2. จากนั้นสร้างออบเจ็กต์ของคลาส Chrome Options และส่งผ่านไปยังอินสแตนซ์ไดรเวอร์เว็บ เนื่องจากเราต้องการเปิดเบราว์เซอร์ Chrome ในโหมดไม่มีหัว เราจึงต้องส่งอาร์กิวเมนต์ -ไม่มีหัวไปที่คลาสตัวเลือก Chrome
  3. สร้างวัตถุของคลาส DesiredCapabilities Chrome และรวมวัตถุคลาส Desired Capabilities กับวัตถุคลาส Chrome Options โดยใช้วิธีการผสาน
  4. สร้างออบเจ็กต์ของคลาส Chrome Driver และส่งผ่านตัวเลือก Chrome Selenium วัตถุเป็นข้อโต้แย้ง
  5. ในที่สุด เราต้องส่ง URL – https://demo.guru99.com/ ไปที่วิธี driver.get
  6. พิมพ์ชื่อหน้าและปิดเบราว์เซอร์

เอาท์พุต

เบราว์เซอร์จะไม่ปรากฏให้เห็นสำหรับโค้ดด้านบนเนื่องจาก Chrome จะทำงานในโหมด Headless ชื่อหน้าจะถูกดึงออกมาและแสดงตามด้านล่าง

ตัวเลือก Chrome สำหรับ Chrome ที่ไม่มีหัว

สรุป

  • Selenium คลาส Chrome Options ใช้เพื่อจัดการคุณสมบัติต่างๆ ของไดรเวอร์ Chrome
  • คลาสความสามารถของ Chrome ที่ต้องการจะมีชุดคู่คีย์-ค่าเพื่อแก้ไขคุณสมบัติแต่ละรายการของไดรเวอร์เว็บ เช่น ชื่อเบราว์เซอร์ แพลตฟอร์มของเบราว์เซอร์ ฯลฯ
  • หากต้องการจัดการส่วนขยายของเบราว์เซอร์ Chrome จะต้องแตกไฟล์ CRX ที่สอดคล้องกับส่วนขยายและต้องเพิ่มลงในคลาสตัวเลือก Chrome
  • –incognito และ –headless เป็นอาร์กิวเมนต์ที่กำหนดไว้ล่วงหน้าโดยคลาส Chrome Options สำหรับการใช้เบราว์เซอร์ Chrome ในโหมดไม่ระบุตัวตนและโหมด headless