หน้านี้มีเอกสารเกี่ยวกับวิธีเริ่มใช้ ChromeDriver เพื่อทดสอบเว็บไซต์ของคุณ เดสก์ท็อป (Windows/Mac/Linux) นอกจากนี้คุณยังสามารถอ่าน การเริ่มต้นใช้งาน Android หรือ การเริ่มต้นใช้งาน ChromeOS
ตั้งค่า
ChromeDriver เป็นไฟล์ปฏิบัติการแยกต่างหากที่ Selenium WebDriver ใช้ในการควบคุม Chrome โดยจะดูแลโดยทีม Chromium ด้วยความช่วยเหลือจากผู้ร่วมให้ข้อมูลของ WebDriver หากคุณไม่คุ้นเคยกับ Selenium WebDriver คุณควรดูเว็บไซต์ Selenium
ทำตามขั้นตอนต่อไปนี้เพื่อตั้งค่าการทดสอบสำหรับการทำงานกับ ChromeDriver
- ตรวจสอบว่าติดตั้ง Chromium/Google Chrome ไว้ในตำแหน่งที่รู้จักแล้ว
- ChromeDriver จะคาดหวังให้คุณติดตั้ง Chrome ในตำแหน่งเริ่มต้นสำหรับแพลตฟอร์มของคุณ นอกจากนี้คุณยังบังคับให้ ChromeDriver ใช้ตำแหน่งที่กำหนดเองได้โดยการตั้งค่าความสามารถพิเศษ
- ดาวน์โหลดไบนารี ChromeDriver สำหรับแพลตฟอร์มของคุณในส่วนดาวน์โหลดของเว็บไซต์นี้
- ช่วย WebDriver หาไฟล์ปฏิบัติการ ChromeDriver ที่ดาวน์โหลดมา
ขั้นตอนเหล่านี้อาจช่วยแก้ปัญหาได้
- รวมตำแหน่ง ChromeDriver ในตัวแปรสภาพแวดล้อม PATH
- (เฉพาะ Java เท่านั้น) ระบุตำแหน่งโดยใช้พร็อพเพอร์ตี้ระบบ webdriver.chrome.driver (ดูตัวอย่างด้านล่าง)
- (Python เท่านั้น) รวมเส้นทางไปยัง ChromeDriver เมื่อเริ่มต้น webdriver.Chrome (ดูตัวอย่างด้านล่าง)
การทดสอบตัวอย่าง
Java:
import org.openqa.selenium.*; import org.openqa.selenium.chrome.*; import org.junit.Test; public class GettingStarted { @Test public void testGoogleSearch() throws InterruptedException { // Optional. If not specified, WebDriver searches the PATH for chromedriver. // System.setProperty("webdriver.chrome.driver", "/path/to/chromedriver"); // WebDriver driver = new ChromeDriver(); driver.get("http://www.google.com/"); Thread.sleep(5000); // Let the user actually see something! WebElement searchBox = driver.findElement(By.name("q")); searchBox.sendKeys("ChromeDriver"); searchBox.submit(); Thread.sleep(5000); // Let the user actually see something! driver.quit(); } }
งูหลาม:
import time from selenium import webdriver driver = webdriver.Chrome('/path/to/chromedriver') # Optional argument, if not specified will search path. driver.get('http://www.google.com/'); time.sleep(5) # Let the user actually see something! search_box = driver.find_element_by_name('q') search_box.send_keys('ChromeDriver') search_box.submit() time.sleep(5) # Let the user actually see something! driver.quit()
ควบคุมอายุการใช้งานของ ChromeDriver
คลาส ChromeDriver จะเริ่มต้นกระบวนการของเซิร์ฟเวอร์ ChromeDriver ขณะสร้างและสิ้นสุดคลาสเมื่อมีการเรียกใช้ออก ซึ่งอาจทำให้เสียเวลาจำนวนมากสำหรับชุดทดสอบขนาดใหญ่ที่สร้างอินสแตนซ์ ChromeDriver ต่อการทดสอบ วิธีแก้ไขมี 2 วิธีดังนี้
- ใช้ ChromeDriverService ตัวเลือกนี้ใช้ได้ในภาษาส่วนใหญ่ และจะช่วยให้คุณเริ่มหรือหยุดเซิร์ฟเวอร์ ChromeDriver ได้ด้วยตนเอง ดูตัวอย่าง Java (ที่มี JUnit 4) ได้ที่นี่
import java.io.*; import org.junit.*; import org.openqa.selenium.*; import org.openqa.selenium.chrome.*; import org.openqa.selenium.remote.*; public class GettingStartedWithService { private static ChromeDriverService service; private WebDriver driver; @BeforeClass public static void createAndStartService() throws IOException { service = new ChromeDriverService.Builder() .usingDriverExecutable(new File("/path/to/chromedriver")) .usingAnyFreePort() .build(); service.start(); } @AfterClass public static void stopService() { service.stop(); } @Before public void createDriver() { driver = new RemoteWebDriver(service.getUrl(), new ChromeOptions()); } @After public void quitDriver() { driver.quit(); } @Test public void testGoogleSearch() { driver.get("http://www.google.com"); // rest of the test... } }
งูหลาม:
import time from selenium import webdriver from selenium.webdriver.chrome.service import Service service = Service('/path/to/chromedriver') service.start() driver = webdriver.Remote(service.service_url) driver.get('http://www.google.com/'); time.sleep(5) # Let the user actually see something! driver.quit()
- เริ่มต้นเซิร์ฟเวอร์ ChromeDriver แยกต่างหากก่อนเรียกใช้การทดสอบ และเชื่อมต่อกับเซิร์ฟเวอร์โดยใช้ Remote WebDriver
เทอร์มินัล:
$ ./chromedriver Starting ChromeDriver 76.0.3809.68 (...) on port 9515 ...
Java:
import java.net.*; import org.openqa.selenium.*; import org.openqa.selenium.chrome.*; import org.openqa.selenium.remote.*; public class GettingStartedRemote { public static void main(String[] args) throws MalformedURLException { WebDriver driver = new RemoteWebDriver( new URL("http://127.0.0.1:9515"), new ChromeOptions()); driver.get("http://www.google.com"); driver.quit(); } }