สามารถดึงโค้ด HTML ภายในของ WebElement ได้โดยใช้เมธอด getAttribute("innerHTML") ซึ่งจะคืนค่าข้อความระหว่างแท็กเปิดและแท็กปิดขององค์ประกอบนั้นๆ
ไวยากรณ์ (Syntax)
String html = element.getAttribute("innerHTML");
ตัวอย่างโค้ด Java สมบูรณ์
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.By;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebElement;
public class HtmlCodeElement {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "C:\\path\\to\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.get("https://www.example.com");
// ระบุองค์ประกอบ (ตัวอย่าง: แท็ก h4)
WebElement element = driver.findElement(By.cssSelector("h4"));
// ดึง innerHTML
String html = element.getAttribute("innerHTML");
System.out.println("HTML code of element: " + html);
driver.close();
}
}
ผลลัพธ์ตัวอย่าง
หาก HTML เป็น <h4>You are browsing the best resource for <b>Online Education</b></h4>
ผลลัพธ์จะได้: You are browsing the best resource for <b>Online Education</b>
วิธีทางเลือก: ใช้ JavaScript Executor
JavascriptExecutor js = (JavascriptExecutor) driver;
String html = (String) js.executeScript("return arguments[0].innerHTML;", element);
ความแตกต่างระหว่าง innerHTML และ outerHTML
| Property | คำอธิบาย | ตัวอย่างผลลัพธ์ |
|---|---|---|
innerHTML |
เนื้อหาภายในแท็ก (ไม่รวมแท็กตัวเอง) | Hello <b>World</b> |
outerHTML |
โค้ด HTML ทั้งหมดรวมแท็กตัวเอง | <div>Hello <b>World</b></div> |