2015-10-20 92 views
5

如果我的問題聽起來很重要,我很抱歉,我在QA和Selenium方面很新。「ExpectedConditions.visibilityOfElementLocated」和「ExpectedConditions.presenceOfElementLocated」之間的確切區別是什麼

之間有什麼準確的區別:

wait.until(ExpectedConditions.visibilityOfElementLocated 
        (By.xpath("//a[text()='Show advanced settings...']"))).click(); 

wait.until(ExpectedConditions.presenceOfElementLocated 
        (By.xpath("//a[text()='Show advanced settings...']"))).click(); 

我看了一下here但沒弄明白。

回答

9

visibilityOfElmementLocated檢查元素是否存在並且可見。爲了檢查可見性,確保元素的高度和寬度大於0.

presenceOfElementLocated只是檢查dom,看它是否可以找到元素,而不管它的可見性如何。

來源: https://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/support/ui/ExpectedConditions.html#visibilityOf-org.openqa.selenium.WebElement-

visibilityOf 公共靜態ExpectedCondition visibilityOf(WebElement元件) 用於檢查的元件,已知存在於一個頁面的DOM的期望,是可見的。 能見度意味着該元件不僅顯示,但也具有高度和寬度,該寬度大於0 參數:

+0

因此,如果一個元素存在,但不可見,我們不能點擊它,但如果它是可見的,並現在我們可以做到,對吧? – LoveLovelyJava

+0

正確。除非你使用JavaScript點擊。 –

+0

javascript click?我需要用JavaScript編寫代碼嗎?! :( – LoveLovelyJava

相關問題