Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium:如何使用javascript清除表单字段中的值?_Selenium_Fixtures_Fitnesse_Selenium Fitnesse Bridge - Fatal编程技术网

Selenium:如何使用javascript清除表单字段中的值?

Selenium:如何使用javascript清除表单字段中的值?,selenium,fixtures,fitnesse,selenium-fitnesse-bridge,Selenium,Fixtures,Fitnesse,Selenium Fitnesse Bridge,我使用的是selenium IDE和selenium Fitnesse Bridge fixture,我试图测试当我从表单字段中清除默认值时,我的表单会显示一条错误消息 因此,当我使用Selenium IDE录制时,它所做的相当于告诉Selenium不要键入任何内容 | type | text_field | | |类型|文本|字段|| 问题是我使用的Fitnesse fixture期望第二个参数不为null 在Selenium中,有没有一种方法可以“清除值”而不是“什么都不键入”?您可以通过

我使用的是selenium IDE和selenium Fitnesse Bridge fixture,我试图测试当我从表单字段中清除默认值时,我的表单会显示一条错误消息

因此,当我使用Selenium IDE录制时,它所做的相当于告诉Selenium不要键入任何内容

| type | text_field | | |类型|文本|字段|| 问题是我使用的Fitnesse fixture期望第二个参数不为null


在Selenium中,有没有一种方法可以“清除值”而不是“什么都不键入”?

您可以通过javascript这样做:

| verifyEval | javascript{this.browserbot.getCurrentWindow().document.getElementById('CONTROL_ID').value = ''} || 
有效地,verifyEval语句允许您执行您想要的任何javascript片段。使使用Selenium完成的一些困难问题变得更加简单


我过去(今天信不信由你)是想办法解决的。

我用这个来让它工作
reg\u start\u date
是我输入字段的id

| storeEval | window.document.getElementById('reg_start_date').value = '' |
硒参考文献:

请注意,默认情况下,代码段将在“selenium”对象本身的上下文中运行,因此
将引用selenium对象。使用
window
引用应用程序的窗口,例如
window.document.getElementById('foo')


另外,避免用javascript{}包装javascript代码,否则将无法工作。

我们在开始时也遇到了这个问题。Try:|键入|文本|字段|空白|

有关使用blank和null的Fitnesse文档,请查看更多信息


:)

这实际上是行不通的。此外,要运行我们的javascript,我们需要使用runScript而不是verifyEval,但我认为这样做可能会奏效。但不确定为什么上面的代码不起作用。@Andrew-什么特别不起作用?再详细一点,我会修改我的答案。我得到了这个异常:java.lang.RuntimeException:this.browserbot.getCurrentWindow().document.getElementById('reg\u start\u date')。在捕获的值映射中找不到值='',所以Andrew会反向工作并找到问题。使用您的js调试技能,查看哪些没有正确返回,然后从那里继续工作。javascript正在进行评估,现在轮到您研究如何应用它了。