Selenium Firefox โปรไฟล์: คู่มือการตั้งค่า

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

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

  • 🔘 ข้อมูลพื้นฐานเกี่ยวกับโปรไฟล์: A Firefox โปรไฟล์จะเก็บที่คั่นหน้า รหัสผ่านที่บันทึกไว้ ส่วนเสริม ใบรับรอง และการตั้งค่าต่างๆ ของผู้ใช้ไว้ในโฟลเดอร์เดียว
  • ☑️ ตำแหน่งที่ตั้งของโปรไฟล์: Windows, Linux และ macOS แต่ละร้านค้าจะจัดเก็บโฟลเดอร์โปรไฟล์ไว้ในเส้นทางที่แตกต่างกันภายในไดเร็กทอรีของผู้ใช้
  • ✅ การสร้างโปรไฟล์: โปรแกรมจัดการโปรไฟล์ในตัวจะเปิดขึ้นโดยใช้คำสั่ง firefox.exe -p และสร้างโปรไฟล์การทำงานอัตโนมัติที่สะอาดหมดจดในห้าขั้นตอน
  • 🧪 Code เข้าไป: คลาส ProfilesIni อ่านไฟล์ profiles.ini และเมธอด getProfile จะส่งคืนโปรไฟล์ที่ระบุชื่อเป็นออบเจ็กต์ Firefoxวัตถุโปรไฟล์
  • 🛠️ ไวยากรณ์ปัจจุบัน: Selenium ขั้นตอนที่ 3 และ 4 จะส่งโปรไฟล์ผ่านไป FirefoxOptions.setProfile แทนที่จะเป็น Firefoxตัวสร้างไดรเวอร์
  • ⚠️ การตั้งค่า: setPreference ใช้สำหรับควบคุมโฟลเดอร์ดาวน์โหลด การแจ้งเตือน ภาษา และการจัดการใบรับรอง ก่อนที่เบราว์เซอร์จะเริ่มทำงาน

Selenium Firefox คู่มือการตั้งค่าโปรไฟล์

Selenium Firefox บริษัท

Firefox โปรไฟล์คือชุดของการตั้งค่า การปรับแต่ง ส่วนเสริม และการตั้งค่าส่วนบุคคลอื่น ๆ ที่สามารถทำได้บน Firefox Browser- คุณสามารถปรับแต่งได้ Firefox โปรไฟล์ให้เหมาะกับคุณ Selenium ข้อกำหนดระบบอัตโนมัติ

นอกจากนี้ Firefox หรือเบราว์เซอร์อื่นใดที่จัดการการตั้งค่าใบรับรอง SSL ดังนั้นการทำให้เป็นอัตโนมัติจึงสมเหตุสมผลมากควบคู่ไปกับโค้ดทดสอบ

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

ตำแหน่งของโฟลเดอร์โปรไฟล์ของคุณในดิสก์

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

ภาพหน้าจอด้านล่างแสดงโฟลเดอร์โปรไฟล์ที่ปรากฏบนดิสก์ โดยตั้งชื่อตามโปรไฟล์และมีคำนำหน้าแบบสุ่ม

Firefox โฟลเดอร์โปรไฟล์ที่แสดงบนดิสก์พร้อมคำนำหน้าแบบสุ่ม

ตำแหน่งของโปรไฟล์มีดังนี้

  • ใช้เพื่อการ Windows > C:\Users\ \AppData\Roaming\Mozilla\Firefoxโปรไฟล์\ชื่อโปรไฟล์.ค่าเริ่มต้น
  • ใช้เพื่อการ ลินุกซ์ > ~/.mozilla/firefox/profile_name.default/
  • สำหรับ Mac OS X > ~/Library/Application Support/Firefox/โปรไฟล์/profile_name.default/

เพื่อที่จะดำเนินการได้สำเร็จ Selenium ทดสอบก Firefox โปรไฟล์ควรเป็น –

  • โหลดง่าย
  • การตั้งค่าพร็อกซีหากจำเป็น
  • การตั้งค่าเฉพาะผู้ใช้อื่นๆ ตามความต้องการของระบบอัตโนมัติ

วิธีการตั้งค่า Firefox โปรไฟล์สำหรับ Selenium การทดสอบ

เรามาดูกันทีละขั้นตอนว่าจะสร้างได้อย่างไร Firefox โปรไฟล์

ขั้นตอน 1) ปิด Firefox เบราว์เซอร์

ขั้นตอนแรก ให้ปิด Firefox หากเปิดอยู่แล้ว โปรแกรมจัดการโปรไฟล์จะไม่เริ่มทำงานในขณะที่... Firefox วินโดวน่ากำลังทำงานอยู่

ขั้นตอน 2) เปิดรัน (Windows กดแป้น + R) แล้วพิมพ์ firefox.exe –p

หน้าต่าง Run ควรมีลักษณะเหมือนภาพหน้าจอด้านล่างก่อนที่คุณจะกด OK

Windows เรียกใช้งานกล่องโต้ตอบโดยพิมพ์คำสั่ง firefox.exe -p

หมายเหตุ: หากเปิดไม่ได้ คุณสามารถลองใช้พาธแบบเต็มที่ล้อมด้วยเครื่องหมายอัญประกาศได้

  • บนระบบ 32 บิต Windows: “C:\Program Files\Mozilla Firefox\firefox.exe” –p
  • บนระบบ 64 บิต Windows (32 บิต Firefox): “C:\Program Files (x86)\Mozilla Firefox\firefox.exe” –p

ขั้นตอน 3) เลือกโปรไฟล์ผู้ใช้

ตอนนี้ กล่องโต้ตอบชื่อ... Firefox จะเปิดออกดังที่แสดงด้านล่าง

Firefox กล่องโต้ตอบเลือกโปรไฟล์ผู้ใช้จะแสดงรายการโปรไฟล์ที่มีอยู่

ขั้นตอน 4) สร้างโปรไฟล์

เลือกตัวเลือก "สร้างโปรไฟล์" ที่แสดงในภาพหน้าจอถัดไปเพื่อเริ่มขั้นตอนการสร้างโปรไฟล์

หน้าจอต้อนรับตัวช่วยสร้างการสร้างโปรไฟล์ Firefox ผู้จัดการโปรไฟล์

ตอนนี้ เลือกตัวเลือก สร้างโปรไฟล์ จากหน้าต่าง จากนั้นตัวช่วยสร้างจะเปิดขึ้น คลิกที่ถัดไป

ขั้นตอน 5) ตั้งชื่อโปรไฟล์ของคุณ

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

การเข้าสู่สิ่งใหม่ Firefox ชื่อโปรไฟล์ในตัวช่วยสร้างการสร้างโปรไฟล์

ตอนนี้โปรไฟล์ของคุณพร้อมแล้ว คุณสามารถเลือกโปรไฟล์ของคุณและเปิดได้ Firefoxจากตรงนี้ โปรไฟล์จะทำงานเหมือนกับเซสชันเบราว์เซอร์อื่นๆ ดังนั้น สคริปต์ WebDriver ตัวแรก จะดำเนินการต่อต้านโดยไม่เปลี่ยนแปลง

คุณจะสังเกตได้ว่าใหม่ Firefox หน้าต่างจะไม่แสดงไอคอนบุ๊กมาร์กและรายการโปรดของคุณ

หมายเหตุ: โปรไฟล์ที่เลือกครั้งล่าสุดจะถูกโหลดโดยอัตโนมัติในครั้งถัดไป Firefox ปล่อย. คุณจะต้องรีสตาร์ทตัวจัดการโปรไฟล์หากคุณต้องการเปลี่ยนโปรไฟล์

สคริปต์อัตโนมัติสำหรับ Selenium

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

⚠️ หมายเหตุเกี่ยวกับเวอร์ชัน: ข้อความที่ตัดตอนมาในส่วนนี้เป็นข้อความต้นฉบับ Selenium แบบฟอร์ม 2 ในปัจจุบัน Selenium ปล่อยคลาสที่อาศัยอยู่ org.openqa.selenium.firefox.ProfilesIni - The .ภายใน แพ็กเกจย่อยถูกยกเลิก และข้อมูลโปรไฟล์จะถูกส่งต่อให้คนขับผ่านทาง Firefoxตัวเลือกต่างๆ โปรดดูที่ Firefoxดูรายละเอียดตัวเลือกด้านล่างสำหรับเวอร์ชันที่ทันสมัยกว่า

Selenium รหัสสำหรับโปรไฟล์

นี่คือโค้ดสำหรับสร้างโปรไฟล์ ซึ่งสามารถฝังลงในไฟล์ได้ Selenium รหัส.

ProfilesIni profile = new ProfilesIni();

// สิ่งนี้จะสร้างวัตถุสำหรับ Firefox โปรไฟล์

FirefoxProfile myprofile = profile.getProfile("xyzProfile");

// สิ่งนี้จะเริ่มต้น Firefox คนขับรถ

WebDriver driver = new FirefoxDriver(myprofile)

มาดูการนำโค้ดนี้ไปใช้ในตัวอย่างต่อไปนี้กัน

Firefox ตัวอย่างโปรไฟล์ 1

ตัวอย่างแรกจะโหลดโปรไฟล์โดยใช้ชื่อ ภาพหน้าจอด้านล่างแสดงสคริปต์เดียวกันภายในตัวแก้ไข

Firefox ตัวอย่างโปรไฟล์ 1 สคริปต์โหลดโปรไฟล์ตามชื่อในโปรแกรมแก้ไข

// import the package
import java.io.File;
      import java.util.concurrent.TimeUnit;
      import org.openqa.selenium.WebDriver;
      import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.firefox.internal.ProfilesIni;
public class FirefoxProfile {
 	public static void main(String[] args) {
	ProfilesIni profile = new ProfilesIni();
	FirefoxProfile myprofile = profile.getProfile("xyzProfile");
// Initialize Firefox driver
	WebDriver driver = new FirefoxDriver(myprofile);
//Maximize browser window
	driver.manage().window().maximize();
//Go to URL which you want to navigate
	driver.get("http://www.google.com");
//Set  timeout  for 5 seconds so that the page may load properly within that time
	driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
//close firefox browser
	driver.close();
}

}

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

ด้านล่างนี้เป็นคำอธิบายของโค้ดทีละบรรทัด

  • Code บรรทัดที่ 2-7: ก่อนอื่นเราต้องนำเข้าแพ็กเกจที่จำเป็นสำหรับการรันโปรแกรม Selenium รหัส.
  • Code บรรทัดที่ 8: สร้างคลาสสาธารณะ “Firefoxประวัติโดยย่อ."
  • Code บรรทัดที่ 9: สร้างอ็อบเจ็กต์ (คุณจำเป็นต้องมีความรู้พื้นฐานเกี่ยวกับแนวคิด OOP)
  • Code บรรทัดที่ 10-11: เราจำเป็นต้องเริ่มต้นใช้งาน Firefox โปรไฟล์ที่มีวัตถุเป็น myprofile
  • Code บรรทัดที่ 13: สร้างวัตถุสำหรับ Firefox.
  • Code บรรทัดที่ 15: ขยายหน้าต่างให้เต็มจอ
  • Code บรรทัดที่ 17: driver.get ใช้เพื่อนำทางไปยังตำแหน่งที่กำหนด URL.
  • Code บรรทัดที่ 19: คำสั่ง `set timeout` ใช้สำหรับรอเวลาสักระยะเพื่อให้เบราว์เซอร์โหลดหน้าเว็บเสร็จก่อนที่จะไปยังหน้าถัดไป
  • Code บรรทัดที่ 21: ปิด Firefox.

เรามาดูตัวอย่างอีกสักตัวอย่างกันครับ

Firefox ตัวอย่างโปรไฟล์ 2

ตัวอย่างที่สองข้ามไฟล์ profiles.ini และชี้ไปยังโฟลเดอร์โปรไฟล์โดยตรง ดังที่แสดงในภาพหน้าจอของโปรแกรมแก้ไข

Firefox ตัวอย่างโปรไฟล์ 2 สคริปต์ชี้ Firefoxโปรไฟล์ที่อยู่ในโฟลเดอร์พาธ

import java.io.File;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.firefox.internal.ProfilesIni;

public class FirefoxProfile2{
public static void main(String[] args) {

// Create object for FirefoxProfile
	FirefoxProfilemyprofile=newFirefoxProfile (newFile("\c:users\AppData\MozillaFirefoxProfile_name.default "));  
// Initialize Firefox driver    
	WebDriver driver = new FirefoxDriver(myprofile);
//Maximize browser window       
	driver.manage().window().maximize();
//Go to URL      
	driver.get("http://www.google.com");
//Set  timeout      
	driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
//close firefox browser  
	driver.close();
    }

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

ด้านล่างนี้เป็นคำอธิบายของโค้ดทีละบรรทัด

  • Code บรรทัดที่ 1-6: ก่อนอื่นเราต้องนำเข้าแพ็กเกจที่จำเป็นสำหรับการรันโปรแกรม Selenium รหัส.
  • Code บรรทัดที่ 8: สร้างคลาสสาธารณะ Firefoxโปรไฟล์ 2.
  • Code บรรทัดที่ 12: สร้างอ็อบเจ็กต์ myprofile โดยอ้างอิงถึงพาธที่แน่นอน
  • Code บรรทัดที่ 14: สร้างวัตถุสำหรับ Firefox.
  • Code บรรทัดที่ 16: ขยายหน้าต่างให้เต็มจอ
  • Code บรรทัดที่ 18: driver.get ใช้เพื่อนำทางไปยังตำแหน่งที่กำหนด URL.
  • Code บรรทัดที่ 20: คำสั่ง `set timeout` ใช้สำหรับรอเวลาสักระยะเพื่อให้เบราว์เซอร์โหลดหน้าเว็บเสร็จก่อนที่จะไปยังหน้าถัดไป
  • Code บรรทัดที่ 22: ปิด Firefox.

โปรดทราบว่าเส้นทางในตัวอย่างโค้ดนี้เขียนตรงตามที่ปรากฏในบทเรียนต้นฉบับทุกประการ บนเครื่องจริงจะต้องใช้เครื่องหมายแบ็กสแลชเพื่อหลีกเลี่ยงการตีความผิด เช่น “C:\\Users\\guru99\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\xyzProfile.default”.

วิธีใช้ a Firefox โปรไฟล์ใน Selenium 4 ด้วย Firefoxตัวเลือก

ตัวอย่างทั้งสองข้างต้นคอมไพล์ได้เฉพาะกับเท่านั้น Selenium 2. มีสองสิ่งที่เปลี่ยนแปลงไปหลังจากนั้น และบทช่วยสอนปัจจุบันทั้งหมดใช้รูปแบบใหม่กว่า

  • ProfilesIni ย้ายออกไปแล้ว ภายใน เนื่องจากเป็นแพ็กเกจย่อย การนำเข้าจึงเป็น org.openqa.selenium.firefox.ProfilesIni
  • การขอ Firefoxคนขับ(Firefoxตัวสร้างโปรไฟล์ถูกลบออกแล้ว โปรไฟล์ถูกแนบไว้กับ Firefoxอ็อบเจ็กต์ตัวเลือกจะถูกส่งไปยังไดรเวอร์
  • Selenium 4 การหมดเวลาจะใช้ java.time.Duration แทนที่จะเป็นค่าบวก TimeUnit ดังนั้น implicitlyWait(5, TimeUnit.SECONDS) จึงกลายเป็น implicitlyWait(Duration.ofSeconds(5))

ตารางด้านล่างนี้แสดงการจับคู่ระหว่างฟังก์ชันเดิมกับฟังก์ชันทดแทน

การเรียกใช้แบบดั้งเดิม (Selenium 2) สายเรียกเข้าปัจจุบัน (Selenium 3 และ 4)
import org.openqa.selenium.firefox.internal.ProfilesIni; import org.openqa.selenium.firefox.ProfilesIni;
ใหม่ Firefoxคนขับ (โปรไฟล์ของฉัน) ตัวเลือก.ตั้งค่าโปรไฟล์(โปรไฟล์ของฉัน); ใหม่ Firefoxไดร์เวอร์ (ตัวเลือก)
implicitlyWait(5, TimeUnit.SECONDS) implicitlyWait(Duration.ofSeconds(5))
System.setProperty สำหรับ geckodriver แก้ไขโดยอัตโนมัติโดย Selenium ผู้จัดการ

ตัวอย่างที่ 1 ซึ่งเขียนใหม่โดยใช้เวอร์ชันล่าสุด จะมีลักษณะดังนี้

import java.time.Duration;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.firefox.ProfilesIni;

public class FirefoxProfileSelenium4 {
    public static void main(String[] args) {
        ProfilesIni allProfiles = new ProfilesIni();
        FirefoxProfile myprofile = allProfiles.getProfile("xyzProfile");

        FirefoxOptions options = new FirefoxOptions();
        options.setProfile(myprofile);

        WebDriver driver = new FirefoxDriver(options);
        driver.manage().window().maximize();
        driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(5));
        driver.get("https://www.google.com");
        driver.quit();
    }
}

การค้นหาโปรไฟล์ยังคงเหมือนเดิม: ProfilesIni ยังคงอ่านไฟล์ profiles.ini จาก Firefox โฟลเดอร์ application-data และ getProfile ยังคงส่งค่า null กลับมาเมื่อชื่อไม่ตรงกับโปรไฟล์ ดังนั้นควรเพิ่มการตรวจสอบค่า null ก่อนที่ไดรเวอร์จะเริ่มทำงาน อ็อบเจ็กต์ตัวเลือกเดียวกันนี้ยังบรรจุอาร์กิวเมนต์ที่ใช้ในที่อื่น ๆ เช่น อาร์กิวเมนต์สำหรับ การขยายหรือปรับขนาดหน้าต่างเบราว์เซอร์.

วิธีการตั้งค่า Firefox การตั้งค่าโปรไฟล์ใน Selenium

การบันทึกโปรไฟล์เป็นเพียงครึ่งหนึ่งของเรื่องราวทั้งหมด การทำงานอัตโนมัติส่วนใหญ่ต้องการการตั้งค่าจำนวนหนึ่งที่เขียนด้วยโค้ด เพื่อให้การทำงานเหมือนกันในทุกเครื่อง เมธอด setPreference จะเขียนค่าเหล่านั้นลงในสำเนาโปรไฟล์ก่อน Firefox การเปิดตัว

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.dir", "C:\\selenium-downloads");
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/pdf");
profile.setPreference("dom.webnotifications.enabled", false);
profile.setPreference("intl.accept_languages", "es");

FirefoxOptions options = new FirefoxOptions();
options.setProfile(profile);
WebDriver driver = new FirefoxDriver(options);

การตั้งค่าด้านล่างนี้ครอบคลุมกรณีที่พบได้บ่อยที่สุดในการเขียนสคริปต์ในชีวิตประจำวัน

การตั้งค่า สิ่งที่มันควบคุม
รายชื่อโฟลเดอร์ดาวน์โหลดของเบราว์เซอร์ ตั้งค่าเป็น 2 เพื่อใช้โฟลเดอร์ดาวน์โหลดที่กำหนดเองแทนโฟลเดอร์เริ่มต้นของระบบ
เบราว์เซอร์ดาวน์โหลดไดเร็กต์ เส้นทางสัมบูรณ์ Firefox บันทึกไฟล์ดาวน์โหลดลงใน...
browser.helperApps.neverAsk.saveToDisk ประเภท MIME ที่บันทึกโดยไม่ต้องแสดงกล่องโต้ตอบการดาวน์โหลด
dom.webnotifications.เปิดใช้งานแล้ว ตั้งค่าเป็น false เพื่อปิดการแจ้งเตือนแบบ Web Push
ยอมรับภาษาต่างประเทศ ส่วนหัว Accept-Language มีประโยชน์สำหรับการดำเนินการแปลภาษา
ทั่วไป.useragent.override แทนที่สตริง User Agent ที่ส่งมาจากเบราว์เซอร์

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

ร่วมกัน Firefox ข้อผิดพลาดของโปรไฟล์ใน Selenium และจะแก้ไขอย่างไร

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

อาการ ก่อให้เกิด แก้ไขปัญหา
ผู้สร้าง Firefoxคนขับ(Firefoxโปรไฟล์) ไม่ได้ถูกกำหนด ตัวสร้างถูกลบออกหลังจากนั้น Selenium 2. ห่อโปรไฟล์ไว้ใน Firefoxตัวเลือกและส่งออบเจ็กต์ตัวเลือกแทน
ไม่สามารถแก้ไขการนำเข้า org.openqa.selenium.firefox.internal.ProfilesIni ได้ คลาสได้ย้ายออกจากแพ็กเกจย่อยภายในแล้ว นำเข้า org.openqa.selenium.firefox.ProfilesIni
NullPointerException บน getProfile ชื่อโปรไฟล์ไม่ตรงกับข้อมูลใดๆ ในไฟล์ profiles.ini เปิดตัวจัดการโปรไฟล์อีกครั้ง แล้วคัดลอกชื่อให้ถูกต้องทุกตัวอักษร รวมถึงตัวพิมพ์ใหญ่และตัวพิมพ์เล็กด้วย
ของคุณ Firefox ไม่สามารถโหลดโปรไฟล์ได้ อาจเป็นเพราะโปรไฟล์หายไปหรือไม่สามารถเข้าถึงได้ อื่น Firefox อินสแตนซ์นั้นมีโปรไฟล์อยู่แล้ว หรือไม่ก็เส้นทางโฟลเดอร์ไม่ถูกต้อง ปิดทุกอย่าง Firefox จากนั้นตรวจสอบเส้นทางกับตำแหน่งที่ระบุไว้ข้างต้น
ความชอบไม่มีผลใดๆ ค่านี้ถูกตั้งค่าหลังจากไดรเวอร์เริ่มทำงาน หรือ WebDriver จองค่านี้ไว้ ย้ายคำสั่ง setPreference ทั้งหมดขึ้นไปไว้เหนือคำสั่งอื่น Firefoxตัวสร้างไดรเวอร์

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

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

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

ใช่แล้ว ส่วนขยายใดๆ ที่ติดตั้งในโปรไฟล์จะโหลดพร้อมกับเบราว์เซอร์ คุณยังสามารถเรียกใช้ profile.addExtension(new File(“path/to/extension.xpi”)) เพื่อแนบส่วนขยายในระหว่างการทำงาน ซึ่งจะทำให้โปรไฟล์บนดิสก์สะอาดอยู่เสมอ

Python ไม่มีไฟล์ ProfilesIni ที่เทียบเท่า ประเด็น Firefoxให้สร้างไฟล์โปรไฟล์ในไดเร็กทอรีโปรไฟล์แทน จากนั้นกำหนดค่าให้กับไฟล์ options.profile ก่อนที่จะสร้างไดรเวอร์ Selenium Python จากนั้นทำการคัดลอกโฟลเดอร์นั้นให้เหมือนเดิมทุกประการ Java ไม่

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

นักบิน GitHub สร้างข้อความสำเร็จรูปได้อย่างรวดเร็ว แต่บ่อยครั้งที่มันสร้างข้อความที่ถูกลบออกไป Firefoxคนขับ(Firefoxโปรไฟล์) ตัวสร้างเรียนรู้จากโค้ดเก่า โปรดตรวจสอบการใช้งานคำแนะนำเสมอ Firefoxตั้งค่า Options.setProfile และแพ็กเกจปัจจุบันก่อนที่จะคอมมิต

ใช่แล้ว เรียกใช้ options.addArguments(“-headless”) ควบคู่ไปกับ options.setProfile(profile) โปรไฟล์จะให้ค่ากำหนดและส่วนขยายเหมือนเดิมทุกประการ เนื่องจากโหมด headless เปลี่ยนแปลงเฉพาะวิธีการใช้งานเท่านั้น Firefox การแสดงผล ไม่ใช่วิธีการอ่านไดเร็กทอรีโปรไฟล์

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

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

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