Isa*_*aac 119 python selenium selenium-webdriver
我有一些测试,我在检查某些字段中的文本无效时是否显示正确的错误消息.有效性的一个检查是某个textarea元素不为空.
如果这个textarea中已有文字,我怎么能告诉selenium清除该字段?
就像是:
driver.get_element_by_id('foo').clear_field()
Run Code Online (Sandbox Code Playgroud)
Isa*_*aac 180
driver.find_element_by_id('foo').clear()
Run Code Online (Sandbox Code Playgroud)
Fen*_*nix 68
您可以使用
webElement.clear();
Run Code Online (Sandbox Code Playgroud)
如果此元素是文本输入元素,则将清除该值.
请注意,此事件触发的事件可能与您预期的不同.特别是,我们不会触发任何键盘或鼠标事件.如果您想确保触发键盘事件,请考虑使用类似的东西sendKeys(CharSequence).例如:
webElement.sendKeys(Keys.BACK_SPACE); //do repeatedly, e.g. in while loop
Run Code Online (Sandbox Code Playgroud)
要么:
webElement.sendKeys(Keys.CONTROL + "a");
webElement.sendKeys(Keys.DELETE);
Run Code Online (Sandbox Code Playgroud)
Lea*_*ple 14
在最新的Selenium版本中,使用:
driver.find_element_by_id('foo').clear()
Run Code Online (Sandbox Code Playgroud)
根据我的经验,这被证明是最有效的
driver.find_element_by_css_selector('foo').send_keys(u'\ue009' + u'\ue003')
Run Code Online (Sandbox Code Playgroud)
我们发送 Ctrl + Backspace 来删除输入中的所有字符,您也可以用 delete 替换退格。
编辑:删除密钥依赖项
小智 9
我使用selenium==3.141.0,我不知道为什么
WebElement.clear()
Run Code Online (Sandbox Code Playgroud)
不管用。
我用了
WebElement.send_keys(Keys.CONTROL, 'a')
WebElement.send_keys(Keys.DELETE)
Run Code Online (Sandbox Code Playgroud)
这对我来说非常有用。
CTRL+A send_keys 解决方案在反应中对我不起作用。直接在浏览器中测试,CTRL+A 只是将光标发送到文本元素的开头。相反,这对于选择元素中的所有内容似乎是可靠的。
preferred_name_field.send_keys(Keys.SHIFT, Keys.ARROW_UP)
preferred_name_field.send_keys(Keys.DELETE)
Run Code Online (Sandbox Code Playgroud)
用于Java
driver.findelement(By.id('foo').clear();
Run Code Online (Sandbox Code Playgroud)
或者
webElement.clear();
Run Code Online (Sandbox Code Playgroud)
如果此元素是文本输入元素,这将清除该值。
这是通用语法
driver.find_element_by_id('Locator value').clear();
driver.find_element_by_name('Locator value').clear();
Run Code Online (Sandbox Code Playgroud)
我遇到了.clear()无法正常工作的领域。结合使用前两个答案可解决此问题。
from selenium.webdriver.common.keys import Keys
#...your code (I was using python 3)
driver.find_element_by_id('foo').send_keys(Keys.CONTROL + "a");
driver.find_element_by_id('foo').send_keys(Keys.DELETE);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
147724 次 |
| 最近记录: |