3

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

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

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

命令执行失败。请在https://groups.google.com/forum/#!forum/selenium-users中搜索用户组,以 获取日志窗口中的错误详细信息。错误信息是:t.replace 不是函数

执行的命令是:

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

如您所见,它并没有做任何太棘手的事情 - 只需单击一个链接。测试在 IDE 中运行良好,只是通过 RC 运行时出现问题。

在组中搜索仅发现可追溯到 selenium 版本 1 的真正旧线程。有什么想法吗?

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

[在赏金让我没有答案后编辑]另一个失败的例子是:

clickAndWait   css=a.edit_company

同样的调用在同一个测试的早期工作正常,在同一个页面上。

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

type    id=Address1     Address1

有人对此有什么建议吗?任何方式我什至可以调试正在发生的事情(我在 IDE 中根本看不到这个)

4

3 回答 3

0

我对 clickAndWait 不是很熟悉。我个人更喜欢点击然后做我自己的自定义等待。

尝试单击并添加一个 Thread.Sleep(5000) 或类似的东西,看看错误是单击还是等待部分的结果。

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

于 2012-08-17T14:25:29.963 回答
0

我在各种平台上都看到过类似的问题。它对我来说总是有点随机,所以我不使用 clickandWait。一般来说,做一个简单的点击要可靠得多,然后等待特定的条件。你可以做一个waitforpageload,但这对我来说也不可靠,所以我更喜欢waitfortextpresent和waitforelementpresent之类的东西。

于 2012-08-17T15:17:40.627 回答
-2

Usually, this kind of error would occur if you are dealing with something that is not a string. Could you just make sure that you are dealing with strings only?

2 possibilities where it is arising from:-

  1. When text() is executed -> it might be dealing with a non-string
  2. a[expression] -> the expression(text() = '! selenium test customer') when evaluated to False/True might be the problem because if a is a Map/array, the corresponding key should be a string and not a bool, probably.
  3. text()='! selenium test customer' -->> is it an assignment operation? if yes, make sure that text() returns a lvalue or a mutable object (based on the language you are using selenium rc with)
于 2012-08-17T20:04:28.980 回答