2015-09-04 118 views
0

我試過這段代碼:Wait.until不硒的webdriver工作

By by7 = By.xpath(".//*[@id='i2']/div[2]/div[1]"); 
WebDriverWait wait7 = new WebDriverWait(driver, 10); 
WebElement elem7 = wait7.until(ExpectedConditions.elementToBeClickable(by7)); 
driver.findElement(By.xpath(".//*[@id='i2']/div[2]/div[1]")).click(); 

但是,當我執行此代碼我正在ElementNotVisibleException

命令持續時間或超時:11 milisecond

我該如何通過這個例外?

+0

確保你沒有用戶阿賈克斯。如果有一個Ajax(jQuary),那麼你必須等待它。 –

+0

哦,我不知道這是ajax代碼。我可以在java中做什麼來等待可見元素? – CyberTR

回答

0

等待元素可點擊是獨立於等待它是可見的。你可能需要確保你有正確的元素,並且它應該/將變得可見。你可以改變你的wait.until()等待元素變得可見。

wait.until(ExpectedConditions.visibilityOfElementLocated(by7)) 

只是一個供參考......你的最後一句話,你可以使用從wait.until()返回的元素,然後單擊它。這樣做:elem7.click();我不知道這是否會解決您的問題,只是我注意到的效率。

所以更新的代碼將

By by7 = By.xpath(".//*[@id='i2']/div[2]/div[1]"); 
WebDriverWait wait7 = new WebDriverWait(driver, 10); 
WebElement elem7 = wait7.until(ExpectedConditions.visibilityOfElementLocated(by7)); 
elem7.click(); 
相關問題