我有一些測試,我在檢查某些字段中的文本無效時出現正確的錯誤消息。檢查有效性是某個textarea元素不是空的。從textarea用硒清除文本
如果這個textarea已經有文字了,我該如何告訴selenium清除該字段?
類似:
driver.get_element_by_id('foo').clear_field()
我有一些測試,我在檢查某些字段中的文本無效時出現正確的錯誤消息。檢查有效性是某個textarea元素不是空的。從textarea用硒清除文本
如果這個textarea已經有文字了,我該如何告訴selenium清除該字段?
類似:
driver.get_element_by_id('foo').clear_field()
driver.find_element_by_id('foo').clear()
這在最近的Selenium版本中對我無效。 –
youp chromedriver也打破這一個。 Fenix答案無處不在 –
這可能是一個與硒和chromedriver版本衝突的問題。開發人員似乎不太可能會謹慎地從chromedriver中刪除此功能。 – Isaac
在最近的硒版本,使用:
driver.find_element_by_id('foo').clear()
.clear( )在這裏是重要的部分,但很好的捕獲:) – Isaac
其他答案在我的後面編輯;)@ whackamadoodle3000 –
您可以使用
webElement.clear();
如果此元素是文本輸入元素,則會清除該值。
請注意,此事件引發的事件可能與您預期的不同。特別是,我們不會觸發任何鍵盤或鼠標事件。如果你想確保鍵盤事件被觸發,請考慮使用類似sendKeys(CharSequence)
的東西。例如: -
WebElement.sendKeys(Keys.BACK_SPACE); //do repeatedly, e.g. in while loop
或:
webElement.sendKeys(Keys.CONTROL + "a");
WebElement.sendKeys(Keys.DELETE);
當使用CTRL +'a'考慮在MacOS(其他鍵盤快捷鍵)上運行測試時的情況。順便說一句 - 好的建議,解決了我的問題。 –
這是一般語法
driver.find_element_by_id('Locator value').clear();
driver.find_element_by_name('Locator value').clear();
爲Java
driver.findelement(By.id('foo').clear();
或
webElement.clear();
如果此元素是文本輸入元素,則會清除該值。
我發現它,RTFSourceCode :) driver.get_element_by_id('foo')。clear() – Isaac