Selenium webdriver 打字问题'/';使用Selenium Webdriver将符号添加到输入字段

Selenium webdriver 打字问题'/';使用Selenium Webdriver将符号添加到输入字段,selenium-webdriver,groovy,selenium-chromedriver,geb,Selenium Webdriver,Groovy,Selenium Chromedriver,Geb,最近我遇到了非常奇怪的硒行为: 测试将值键入输入字段,该字段应表示某个文件的路径。测试输入数据取自json文件,并以Map的形式进入测试: 问题是,/符号从键入的值中消失,因此输入值显示为:“geometrypreviewGeometry.stl” 我在设置值的方法中添加了一些调试: { "name": "Preview_Geometry_out", "value": "geometry/previewGeometry.stl", } 输出为: private Clo

最近我遇到了非常奇怪的硒行为:

测试将值键入输入字段,该字段应表示某个文件的路径。测试输入数据取自
json
文件,并以
Map
的形式进入测试:

问题是,
/
符号从键入的值中消失,因此输入值显示为:“geometrypreviewGeometry.stl”

我在设置值的方法中添加了一些调试:

{
      "name": "Preview_Geometry_out",
      "value": "geometry/previewGeometry.stl",
}
输出为:

 private Closure processParameterData = { Navigator el, String newValue ->
    if (newValue) {
        println "Typing: " + newValue
        el.value(newValue)
        println "Actual value: " + el.value()
        return newValue
    }
    el.value()
}
但当我录制视频时,我确实看到键入的值在键入时没有包含斜杠,因此它不是一种由js等进行后处理的字段值

我用普通的selenium API尝试了这一点,将其替换为:
el.value(newValue)
:el.singleElement().sendKeys(newValue)。结果是一样的

我不能手工复制这个。 当测试在我的Win10笔记本电脑上的Chrome中运行时,我无法再现这一点。但是,当测试通过CentOS上的Jenkins远程运行时(测试部署在同一主机上的同一应用程序),这个问题会出现在我的项目中的几个地方。这些输入上没有任何特定的js函数或CSS样式

有什么想法吗? 提前谢谢


UPD:经过一些调试后,我发现只有在表单上显示滚动条时才会出现问题:在这种情况下,表单会在(而不是)键入“/”符号时关闭。逃避也无济于事,停下来睡觉也无济于事。 目前我唯一的解决办法是:

    Typing: geometry/previewGeometry.stl
    Actual value: geometrypreviewGeometry.stl
也许这和,我不知道。我在谷歌上搜索过的这些报告和类似的报告表明,它可能与您系统上使用的语言环境有关。也许您可以尝试一下,看看系统和浏览器区域设置是否匹配,如果一切都设置为英语等,它是否工作。作为
sendKeys
模拟键盘活动,键盘区域设置可能是根本原因。不过,这只是一个有根据的猜测。也许这与……有关,我不知道。我在谷歌上搜索过的这些报告和类似的报告表明,它可能与您系统上使用的语言环境有关。也许您可以尝试一下,看看系统和浏览器区域设置是否匹配,如果一切都设置为英语等,它是否工作。作为
sendKeys
模拟键盘活动,键盘区域设置可能是根本原因。不过,这不过是一个有根据的猜测。
    Typing: geometry/previewGeometry.stl
    Actual value: geometrypreviewGeometry.stl
if (newValue.contains('/')) {
    js.exec(el.singleElement(), "arguments[0].value = '$newValue'")
} else {
    el.value(newValue)
}