ซีลีเนียม - ตัวระบุตำแหน่ง

การค้นหาองค์ประกอบใน Selenium WebDriver ดำเนินการด้วยความช่วยเหลือของเมธอด findElement () และ findElements () ที่จัดเตรียมโดยคลาส WebDriver และ WebElement

  • findElement () ส่งคืนอ็อบเจ็กต์ WebElement ตามเกณฑ์การค้นหาที่ระบุหรือลงเอยด้วยการทิ้งข้อยกเว้นหากไม่พบองค์ประกอบใด ๆ ที่ตรงกับเกณฑ์การค้นหา

  • findElements () ส่งคืนรายการ WebElements ที่ตรงกับเกณฑ์การค้นหา หากไม่พบองค์ประกอบจะส่งคืนรายการว่าง

ตารางต่อไปนี้แสดงรายการไวยากรณ์ Java ทั้งหมดสำหรับการค้นหาองค์ประกอบใน Selenium WebDriver

วิธี ไวยากรณ์ คำอธิบาย
โดย ID driver.findElement (By.id (<element ID>)) ค้นหาองค์ประกอบโดยใช้แอตทริบิวต์ ID
โดยชื่อ driver.findElement (By.name (<ชื่อองค์ประกอบ>)) ค้นหาองค์ประกอบโดยใช้แอตทริบิวต์ Name
ตามชื่อชั้น driver.findElement (By.className (<element class>)) ค้นหาองค์ประกอบโดยใช้แอตทริบิวต์ Class
ตามชื่อแท็ก driver.findElement (By.tagName (<htmltagname>)) ค้นหาองค์ประกอบโดยใช้แท็ก HTML
ตามข้อความลิงก์ driver.findElement (By.linkText (<linktext>)) ค้นหาลิงก์โดยใช้ข้อความลิงก์
โดยข้อความลิงก์บางส่วน driver.findElement (By.partialLinkText (<linktext>)) ค้นหาลิงก์โดยใช้ข้อความบางส่วนของลิงก์
โดย CSS driver.findElement (By.cssSelector (<css selector>)) ค้นหาองค์ประกอบโดยใช้ตัวเลือก CSS
โดย XPath driver.findElement (By.xpath (<xpath>)) ค้นหาองค์ประกอบโดยใช้แบบสอบถาม XPath

การใช้ตัวระบุตำแหน่ง

ตอนนี้ให้เราเข้าใจการใช้งานจริงของแต่ละวิธีการระบุตำแหน่งด้วยความช่วยเหลือของ https://www.calculator.net

โดย ID

ที่นี่มีการเข้าถึงวัตถุด้วยความช่วยเหลือของ ID ในกรณีนี้คือ ID ของกล่องข้อความ ค่าจะถูกป้อนลงในกล่องข้อความโดยใช้เมธอด sendkeys ด้วยความช่วยเหลือของ ID (cdensity)

driver.findElement(By.id("cdensity")).sendKeys("10");

โดยชื่อ

ที่นี่มีการเข้าถึงวัตถุด้วยความช่วยเหลือของชื่อ ในกรณีนี้เป็นชื่อของกล่องข้อความ ค่าจะถูกป้อนลงในกล่องข้อความโดยใช้เมธอด sendkeys ด้วยความช่วยเหลือของ ID (cdensity)

driver.findElement(By.name("cdensity")).sendKeys("10");

ตามชื่อชั้น

ที่นี่มีการเข้าถึงวัตถุด้วยความช่วยเหลือของชื่อคลาส ในกรณีนี้เป็นชื่อคลาสของ WebElement ค่าสามารถเข้าถึงได้ด้วยความช่วยเหลือของเมธอด gettext

List<WebElement> byclass = driver.findElements(By.className("smalltext smtb"));

ตามชื่อแท็ก

ชื่อแท็ก DOM ขององค์ประกอบสามารถใช้เพื่อค้นหาองค์ประกอบนั้น ๆ ใน WebDriver มันง่ายมากที่จะจัดการกับตารางด้วยความช่วยเหลือของวิธีนี้ ดูรหัสต่อไปนี้

WebElement table = driver.findElement(By.id("calctable"));
List<WebElement> row = table.findElements(By.tagName("tr"));
int rowcount = row.size();

โดย Link Text

วิธีนี้ช่วยในการค้นหาองค์ประกอบลิงก์ที่ตรงกับข้อความที่มองเห็นได้

driver.findElements(By.linkText("Volume")).click();

โดยข้อความลิงก์บางส่วน

วิธีนี้ช่วยค้นหาองค์ประกอบลิงก์ที่มีข้อความที่มองเห็นได้ตรงบางส่วน

driver.findElement(By.partialLinkText("Volume")).click();

โดย CSS

CSS ใช้เป็นวิธีในการระบุ webobject แต่เบราว์เซอร์บางตัวไม่รองรับการระบุ CSS

WebElement loginButton = driver.findElement(By.cssSelector("input.login"));

โดย XPath

XPath ย่อมาจากภาษาพา ธ XML เป็นภาษาแบบสอบถามสำหรับการเลือกโหนดจากเอกสาร XML XPath ขึ้นอยู่กับการแสดงโครงสร้างของเอกสาร XML และให้ความสามารถในการนำทางรอบ ๆ ทรีโดยการเลือกโหนดโดยใช้เกณฑ์ต่างๆ

driver.findElement(By.xpath(".//*[@id = 'content']/table[1]/tbody/tr/td/table/tbody/tr[2]/td[1]/input")).sendkeys("100");