วิธีคลิกที่ภาพใน Selenium ไดรเวอร์เว็บ
การเข้าถึงลิงค์รูปภาพ
ลิงก์รูปภาพคือลิงก์ในหน้าเว็บที่แสดงด้วยรูปภาพซึ่งเมื่อคลิกจะนำทางไปยังหน้าต่างหรือหน้าอื่น
เนื่องจากเป็นรูปภาพ เราจึงไม่สามารถใช้เมธอด By.linkText() และ By.partialLinkText() ได้ เนื่องจากโดยพื้นฐานแล้วลิงก์รูปภาพไม่มีข้อความลิงก์เลย
ในกรณีนี้ เราควรหันไปใช้ By.cssSelector หรือ By.xpath วิธีแรกเป็นที่ต้องการมากกว่าเนื่องจากความเรียบง่าย
ในตัวอย่างด้านล่าง เราจะเข้าถึงโลโก้ “Facebook” ที่ด้านซ้ายบนของหน้าการกู้คืนรหัสผ่านของ Facebook
เราจะใช้ By.cssSelector และแอตทริบิวต์ "title" ขององค์ประกอบเพื่อเข้าถึงลิงก์รูปภาพ จากนั้นเราจะตรวจสอบว่าเราถูกนำไปที่หน้าแรกของ Facebook หรือไม่
package newproject; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class MyClass { public static void main(String[] args) { String baseUrl = "https://www.facebook.com/login/identify?ctx=recover"; System.setProperty("webdriver.chrome.driver","G:\\chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get(baseUrl); //click on the "Facebook" logo on the upper left portion driver.findElement(By.cssSelector("a[title=\"Go to Facebook home\"]")).click(); //verify that we are now back on Facebook's homepage if (driver.getTitle().equals("Facebook - log in or sign up")) { System.out.println("We are back at Facebook's homepage"); } else { System.out.println("We are NOT in Facebook's homepage"); } driver.close(); } }
ผล
สรุป
ทั้งหมดนี้เป็นเพียงการคลิกรูปภาพ การเข้าถึงลิงค์รูปภาพทำได้โดยใช้ By.cssSelector()