Ich bin mir nicht sicher, ob ich das Prinzip des Caching verstehe:
@CacheLookup
@FindBy(how = How.ID, using = namespace + signifLvl)
private WebElement sigLvl;
Wenn wir diese Art der Annotation verwenden, wird der ElementLocator verwendet und beim ersten Verweis auf das Feld wird das Element gefunden driver.findElement(by)
und über ElementLocator zwischengespeichert, so dass sie beim nächsten Verweis aus dem Cache zurückgegeben wird.
Es sieht so aus, als ob es von der Lebensdauer der ElementLocator & PageObject Instanz abhängt.
Außerdem bezieht es sich nicht auf direkte driver.findElement(By);
Anrufe.
Ich nehme an, dass WebElement wie ein Zeiger/Verweis auf das Element ist, richtig? Wenn sich also das Element im Browser ändert, wird dies sofort auf das WebElement übertragen. Wie es in JavaScript ist. Weil alle RemoteWebElement-Methoden in Bezug auf den Zustand des Elements Befehl/Abfrage an den Browser ausgeführt werden.
Damit sich die Änderungen auch im zwischengespeicherten Element widerspiegeln, richtig?