【发布时间】:2019-02-25 18:18:43
【问题描述】:
编辑:我找到了解决这个问题的方法:下面的解决方案
自从我将 Selenium 服务器安装移动到另一台机器后,我遇到了一个有趣的问题。
自从我在这台新机器上运行测试后,我的登录测试就不再起作用了。
经过调查,我发现密码字段填充了不正确的值(因此测试失败)。
我正在尝试执行以下操作:
_passWordTextBox.Clear();
_passWordTextBox.SendKeys("!!ä{dasd$352310!!!\\_XY>èà$£<?^^");
以下是在这些行之后填充字段的方式:
如您所见,唯一未正确发送的字符是“!”字符。
它一直在我的另一台机器上工作,并且其他几个可疑的候选人(如 $éà
我已经研究了运行测试的计算机和执行测试的服务器之间的文化差异方向,但我无法找到结论性的东西。
我尝试了以下方法:
密码字符串(定义在代码中):
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
这是最终写入文件中的内容:
"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\ _ abcdefghijklmnopqrstuvwxyz{|}
识别出的字符不起作用:
!]^`~
我也尝试过在我的应用程序中的其他字段(未验证密码或电子邮件),例如描述字段,我得到了相同的结果:没有推送这几个字符。
我尝试查看命令是否正确发送到 selenium 服务器,因为它很明显
08:05:35.850 DEBUG [ReverseProxyHandler.execute] - To upstream: {"value":["!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~?"]}
这意味着服务器正确接收命令但由于某种原因驱动程序或服务器没有正确执行。
【问题讨论】:
-
用相关的 HTML 更新问题
-
尝试一次发送一个字符...现在可以了吗?你的双反斜杠也被视为转义,
\` ->`。 -
一次发送一个字符并不能解决问题
-
您使用的是什么操作系统?是键盘驱动程序有所不同。在 Windows 上,控制中心有键盘设置 - 检查两台机器上是否相同。
-
我认为键盘驱动程序没有什么不同,因为我已经能够自己用键盘输入!]^`~,只是 sendKeys() 不会发送它们至于操作系统,我在两台机器上都在 Windows 10 上,两台机器上都有键盘瑞士法语
标签: selenium selenium-webdriver selenium-chromedriver