Hogyan kell a képre kattintani Selenium Webdriver
⚡ Okos összefoglaló
Kattintson a képre a Selenium A WebDriver CSS szelektort vagy XPath stratégiákat igényel, mivel a képelemek nem jelenítik meg a hivatkozás szövegét. Ez a cikk elmagyarázza, hogyan lehet megtalálni a képet, hogyan lehet elindítani a kattintási műveletet, és hogyan ellenőrizni a navigáció sikerességét.

Egy képre kattintva Selenium A WebDriver egy gyakori feladat, amikor egy ikon, logó vagy bélyegkép navigációs hivatkozásként viselkedik. Mivel a képek nem hordoznak látható szöveget, a hagyományos link-szöveg helymeghatározók kudarcot vallanak, és megbízhatóbb kiválasztási stratégiára van szükség.
Képhivatkozások elérése
A képlinkek a weboldalakon található horgonypontok, amelyeket egy kép képvisel, és amelyre kattintva a böngésző egy másik ablakba vagy oldalra navigál.
Mivel képekről van szó, nem használhatjuk a By.linkText() és By.partialLinkText() metódusokat, mivel a képhivatkozásoknak egyáltalán nincs hivatkozásszövegük.
Ebben az esetben a By.cssSelector vagy a By.xpath metódust kell használnunk. Az első módszert általában az egyszerűsége és olvashatósága miatt részesítik előnyben.
Az alábbi példában a „Facebook” emblémát fogjuk elérni a Facebook Jelszó-helyreállítási oldalának bal felső részén.
A By.cssSelector függvényt és az elem „title” attribútumát fogjuk használni a kép linkjének eléréséhez. Ezután ellenőrizzük, hogy a böngésző a Facebook kezdőlapjára került-e.
Java Code Példa
A következő Selenium A WebDriver kódrészlet elindítja a Chrome-ot, megnyitja a Facebook jelszó-helyreállító oldalát, rákattint a Facebook logóra, és beállítja a kapott oldal címét.
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();
}
}
Eredmény
A képek kattintásának bevált gyakorlatai
Néhány szokás megbízhatóbbá teszi a képkattintás-automatizálást a böngészők és képernyőméretek között.
- A mélyen beágyazott CSS-útvonalakkal szemben részesíts előnyben egy stabil attribútumot, például a title, alt, aria-label vagy data-* jelzőt.
- Adjon hozzá egy explicit WebDriverWait elemet az ElementToBeClickable elemhez a kattintás kiadása előtt.
- Laza betöltésű képek esetén görgesd a kívánt elemet a nyíllal a nézetbe. JavascriptElőször a végrehajtó.
- Ha egy átlátszó réteg elfogja a kattintást, akkor térjen vissza egy JavaSzkript kattintás az alapul szolgáló elemre.
- A navigációt a driver.getTitle() függvénnyel vagy a céloldalon található egyedi elemmel ellenőrizheted.
Hogyan javítja a mesterséges intelligencia a képkereső stratégiákat?
Mesterséges intelligencia által támogatott tesztelési eszközök, mint például TestimA , a Mabl és a Healenium egy kép körüli DOM-ot elemeznek, és önjavító lokátorokat javasolnak. Amikor egy osztály neve vagy attribútum megváltozik egy kiadás után, a keretrendszer automatikusan a legstabilabb alternatívára vált, ami csökkenti az ikon alapú navigáció egyenetlen hibáit.
A mérnökök a ChatGPT vagy a GitHub Copilot segítségével WebDriver kódrészleteket is generálhatnak, robusztus CSS vagy XPath kifejezéseket javasolhatnak egy képhez, és állításokat készíthetnek a kattintás után betöltő oldalhoz. A generált kódot továbbra is ellenőrizni kell a helyesség, valamint a várakozások és átfedések kezelése szempontjából.
Összegzés
A képhivatkozásokra kattintva Selenium A WebDriver használata egyszerű, ha egyszer kiválasztunk egy stabil lokátort. A By.cssSelector a title vagy alt attribútummal a legolvashatóbb megközelítés, a By.xpath a tartalék megoldás, ha a jelölőnyelv nehézkes, az explicit várakozások pedig megbízhatóvá teszik a szkriptet a futások között.

.png)
.png)