Behebung des Problems mit leeren Seiten erfordert Testaktualisierungen

Das Problem mit leeren Seiten bei Visualforce-Seiten in Lightning Experience wurde gelöst. Diese Lösung kann Ihre UI-Testautomatisierungen, die Lightning Experience-Seiten mit eingebetteten Visualforce-Seiten abdecken, beeinträchtigen. Der Inhalt und die Struktur von HTML, CSS und DOM in Lightning Experience können jederzeit geändert werden und stellen keine stabile API dar. Benutzeroberflächentests, die Komponentenbausteine mit Tools umfassen, beispielsweise Selenium WebDriver, müssen kontinuierlich verwaltet werden. Hierbei handelt es sich nicht um eine Änderung in der Version Spring '19, da die Abwärtskompatibilität mit HTML, CSS und DOM niemals garantiert wurde. Im Rahmen der Änderungen an dieser Version wird nochmals auf die Anfälligkeit dieser Tests hingewiesen, da Lightning Experience analog zu modernen Webstandards kontinuierlich weiterentwickelt wird. Uns ist bewusst, welchen Wert automatisierte Benutzeroberflächentests für unsere Kunden haben und welchen Wartungsaufwand dies für sie nach sich zieht.

Wo: Dieser Versionshinweis gilt für Lightning Experience.

Wie: Wenn eine eingebettete Visualforce-Seite das Element <apex:form> enthält, das eine Seitennavigation auslöst, wie beispielsweise eine Schaltfläche zum Abbrechen oder eine beliebige Schaltfläche des Typs <apex:commandButton>, wurde Kunden nach dem Klicken auf Abbrechen oder Auslösen der Seitennavigation eine leere Seite angezeigt.

Um UI-Automatisierungstests zu bestehen, verlassen Sie sich nicht auf die DOM-Struktur als API. Aktualisieren Sie stattdessen Ihren Testcode, um eine Methode ähnlich wie in diesem Selenium WebDriver-Beispiel aufzurufen. Sobald der Vorgang einen POST von der Visualforce-Seite auslöst, erfolgt ein Wechsel zum aktiven Visualforce iFrame.
public void switchToNewActiveVFIframe() { 
   driver.switchTo().defaultContent(); 
   WebElement newActiveIframe = wdUtil.waitForElementVisible("Can't find the new active VF iframe", By.cssSelector("iframe[name^=vfFrameId]"), 10000); 
   driver.switchTo().frame(newActiveIframe); 
}

Einzelheiten finden Sie unter DOM-Untersuchungstests können geändert werden.