2015-12-27 213 views
1

我有一個簡單的點擊按鈕的問題。它的按鈕是CSS。Selenium WebDriver - 沒有這樣的元素:無法找到元素

<div id="rightBtn"> 
<input type="submit" class="mainButton" id="dodajTrenera" value="Dodaj" name="dodaj_trenera"> 
</div> 

我想執行的點擊動作,我用這個代碼:

WebElement addTrainer = driver.findElement(By.name("dodaj_trenera")); 
    addTrainer.click(); 

我得到錯誤:

org.openqa.selenium.NoSuchElementException: no such element: Unable to  locate element: {"method":"name","selector":"dodaj_trenera"} 

爲什麼我得到這個錯誤?它應該工作完美。 此按鈕位於網頁的底部。也許我應該向下滾動頁面?

+2

你可以檢查元素是否在iframe中嗎?謝謝。 – alecxe

回答

0

最常見的這種錯誤是一個同步問題:嘗試點擊它,這樣之前等待元素是存在的並且可以點擊:

WebElement addTrainer = (new WebDriverWait(driver, 10)).until(ExpectedConditions.elementToBeClickable(By.name("dodaj_trenera"))); 
addTrainer.click(); 

當然,你等待的時間可以從10改爲無論對你的頁面有意義。

0
WebElement element = driver.findElement(By.name("dodaj_trenera")); 
((JavascriptExecutor)driver).executeScript("arguments[0].click();", element); 
+4

單獨的代碼塊並不能提供很好的答案。請添加解釋(爲什麼它解決了問題,錯誤在哪裏等) –

相關問題