Selenium RC - t.replace不是一个函数

时间:2012-08-04 14:07:41

标签: testing selenium

[编辑为godman]我正在开发一个基于Web的应用程序,用PHP编写。我正在使用Selenium RC通过浏览器对此应用程序生成的网页进行测试。

我刚刚升级到Firefox 14,所以我不得不升级到Selenium RC 2.25.0。

现在我在使用htmlSuite运行测试时看到了这个错误:

  

命令执行失败。请搜索用户组   https://groups.google.com/forum/#!forum/selenium-users表示错误   日志窗口中的详细信息。错误消息是:t.replace不是a   功能

执行的命令是:

clickAndWait    //a[text()='! selenium test customer']

正如您所看到的,它没有做任何太棘手的事情 - 只需点击链接即可。测试在IDE中运行良好,只是在通过RC运行时才会出现问题。

在小组中搜索只显示了可追溯到硒版本1的旧线程。 任何人的想法?

[编辑]上周我一直在运行几天有几次这些问题的测试 - 而且每次都没有像这样失败。这看起来像是一个随机问题。有没有人见过这种情况?

[在赏金之后编辑得不到答案]另一个失败的例子是:

clickAndWait   css=a.edit_company

同一个调用在同一个测试中,在同一页面上工作正常。

[edit]现在我看到一个完全独立的命令出现了同样的错误:

type    id=Address1     Address1

有人对此有任何建议吗?我可以用任何方式调试正在发生的事情(我根本没有在IDE中看到这一点)

3 个答案:

答案 0 :(得分:0)

我对clickAndWait并不十分熟悉。我个人更喜欢点击然后自己做自定义等待。

尝试只需单击并添加Thread.Sleep(5000)或类似内容,然后查看错误是否是单击或等待部分的结果。

如果是等待部分,那么我的建议与点击部分不同。

答案 1 :(得分:0)

我在不同平台上看到过类似的问题。它对我来说一直是随机的,所以我不使用clickandWait。一般来说,进行单击,然后等待特定条件更可靠。你可以做一个waitforpageload,但这对我来说也是不可靠的,所以我更喜欢waitfortextpresent和waitforelementpresent等。

答案 2 :(得分:-2)

通常,如果您处理的是非字符串的内容,则会发生此类错误。你能确定你只处理字符串吗?

它产生的两种可能性: -

  1. 执行text()时 - >它可能正在处理非字符串
  2. a [表达] - >当评估为False / True时,表达式(text()='!selenium test customer')可能是问题所在,因为如果a是Map /数组,相应的键应该是字符串而不是bool。
  3. 文本()='!硒测试客户' - >>这是一项任务操作吗?如果是,请确保text()返回左值或可变对象(基于您使用selenium rc的语言)