Ich automatisiere die Software mithilfe von Selenium und es gibt ein Webelement, das sich innerhalb des Rahmens befindet und angeklickt werden muss.
Ich habe Folgendes ausprobiert: durch Verwendung der Klasse expectedCondtion, durch Verwendung von thread.sleep(), durch Verwendung einer einfachen click()-Methode von Selenium, durch Verwendung von javascriptExecutor.
aber es funktioniert nicht.
gibt es eine andere Möglichkeit, das Problem zu lösen?
Antwort1
Zunächst müssen Sieschaltenzumiframewo das Element lebt, wenn Sie das nicht tun - Selenium wird nicht in der Lage sein, das Element zu finden wie
driver.switchTo().frame("your frame name or ID");
Zweitens müssen Sie sicherstellen, dass Sie die richtigenStandortstrategieund stellen Sie sicher, dass der Locator korrekt ist. Achten Sie auf Fehlermeldungen/Protokolle, da der Klick möglicherweise von einem anderen Element (übergeordnetes Element, Cookie-Popup oder was auch immer) abgefangen wird.
Drittens: Erwägen Sie die VerwendungWebDriverWartenKlasse zur ImplementierungExplizites Wartenda es sein kann, dass das Element geladen wirdasynchronund nicht sofort verfügbar
WebDriverWait wait = new WebDriverWait(driver,10); wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//your/element/xpath/query"))).click();
Verweise: