2011-10-11 9 views
85

Bazı alanlardaki metinler geçersiz olduğunda uygun hata mesajının görüntülendiğini kontrol ettiğim bazı testlerim var. Bir geçerlilik kontrolü, belirli bir textarea öğesinin boş olmamasıdır.selenium ile textarea metninden temizleyin

Bu textarea zaten bir metin içeriyorsa, selenyumun alanı temizlemesini nasıl söyleyebilirim? gibi

şey: En son Selenyum versiyonda

driver.get_element_by_id('foo').clear_field() 
+1

Ben Bu en son Selenyum sürümünde benim için çalışmaz, RTFSourceCode :) driver.get_element_by_id ('foo'). Berrak() – Isaac

cevap

118
driver.find_element_by_id('foo').clear() 
+2

buldum. –

+0

youp chromedriver da bunu kırıyor. Fenix ​​cevabı her yerde çalışır –

+1

Çakışan selenyum ve kromatik tarayıcı sürümleriyle ilgili bir sorun olabilir. Devlerin bu işlevselliği chromedriver'dan hassas bir şekilde çıkarması pek olası görünmüyor. – Isaac

11

, kullanım:

driver.find_element_by_id('foo').clear() 
+0

.clear () Burada önemli bir parçası, ama iyi yakalamak :) – Isaac

+0

Diğer cevap benimki sonra düzenlenmiştir;) @ whackamadoodle3000 –

30

Sen

webElement.clear(); 

JavaDoc kullanabilirsiniz:

Bu öğe bir metin giriş öğesiyse, bu değer silinir.

Bu etkinlik tarafından tetiklenen olayların beklediğiniz gibi olmayabileceğini unutmayın. Özellikle, herhangi bir klavye veya fare olayını ateş etmiyoruz. Klavye olaylarının tetiklendiğinden emin olmak istiyorsanız, sendKeys(CharSequence) gibi bir şeyi kullanmayı düşünün. Örn .:

WebElement.sendKeys(Keys.BACK_SPACE); //do repeatedly, e.g. in while loop 

ya:

webElement.sendKeys(Keys.CONTROL + "a"); 
WebElement.sendKeys(Keys.DELETE); 
+0

CTRL + 'a' kullanırken, test, MacOS'ta (diğer klavye kısayolları) çalıştığı sırada durumu göz önünde bulundurun. Btw-iyi bir öneri, sorunumu çözdü. –

1

Öyle genel sözdizimi

java için
driver.find_element_by_id('Locator value').clear(); 
driver.find_element_by_name('Locator value').clear(); 
0

driver.findelement(By.id('foo').clear(); 

veya

webElement.clear(); 

Bu öğe bir metin giriş öğesiyse, bu değer silinir.