elementToBeClickable
zur Überprüfung ein Element sichtbar und aktiviert so verwendet wird aktiviert angezeigt wird, dass Sie es klicken.
ExpectedConditions.elementToBeClickable
kehrt WebElement
wenn erwartete Bedingung anders wahr ist, wird es TimeoutException
werfen, es nie null
zurückgibt.
Also, wenn Ihre ExpectedConditions.elementToBeClickable
mit einem Element zu finden, das wird gibt Ihnen immer das klickbaren Element, so dass keine Notwendigkeit für null
Zustand zu überprüfen, sollten Sie wie unten versuchen: -
WebDriverWait wait = new WebDriverWait(Scenario1Test.driver, 10);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("(//div[@id='brandSlider']/div[1]/div/div/div/img)[50]")));
element.click();
Wie Sie Sprich element.click()
übergibt beide auf link
und label
das heißt nicht Element ist nicht anklickbar, bedeutet es zurückgegebene Element clicked
aber möglicherweise gibt es kein Ereignis führt auf Element durch Klick-Aktion.
Hinweis: - Ich schlage Sie immer zuerst versuchen, Elemente zu finden, indem id
, name
, className
und anderen Locator. Wenn Sie Schwierigkeiten haben, zu finden, dann verwenden Sie cssSelector
und geben Sie immer die letzte Priorität an xpath
Locator, weil es langsamer ist als andere Locator, um ein Element zu finden.
Hoffe, es hilft Ihnen .. :)
Es gibt Fälle, wenn 'element.isDisplayed() && Element.isEnabled() 'wird' true' zurückgeben, aber das Element kann nicht angeklickt werden, da Element von einem anderen Element verdeckt/überlappt wird. In diesem Fall ist Ausnahme abgefangen: 'org.openqa.selenium.WebDriverException: unbekannter Fehler: Das Element kann nicht an Punkt geklickt werden (781, 704). Anderes Element würde den Klick erhalten: ' –