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

Testing Selenium RC-t.replace不是一个函数,testing,selenium,Testing,Selenium,[edit for godman]我正在开发一个基于web的应用程序,用PHP编写。我使用Selenium RC通过浏览器在该应用程序生成的网页上运行测试 我刚升级到Firefox14,所以我不得不升级到SeleniumRC2.25.0 现在,当使用htmlSuite运行测试时,我看到了这个错误: 命令执行失败。请在以下位置搜索用户组: 错误 日志窗口中的详细信息。错误消息是:t.replace不是 作用 执行的命令是: clickAndWait //a[text()='! seleniu

[edit for godman]我正在开发一个基于web的应用程序,用PHP编写。我使用Selenium RC通过浏览器在该应用程序生成的网页上运行测试

我刚升级到Firefox14,所以我不得不升级到SeleniumRC2.25.0

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

命令执行失败。请在以下位置搜索用户组: 错误 日志窗口中的详细信息。错误消息是:t.replace不是 作用

执行的命令是:

clickAndWait    //a[text()='! selenium test customer']
正如你所看到的,它没有做任何太棘手的事情——只是点击一个链接。测试在IDE中运行良好,只是在通过RC运行时才出现问题

在小组中搜索发现,只有真正古老的线程可以追溯到selenium版本1。 有什么想法吗

[编辑]在过去的一周里,我每天都会多次运行出现这些问题的测试,而且似乎并不是每次都像这样失败。这看起来像是一个随机问题。以前有人见过这种情况吗

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

clickAndWait   css=a.edit_company
在同一测试中,在同一页面上,相同的调用可以正常工作

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

type    id=Address1     Address1

有人对此有什么建议吗?不管怎样,我甚至可以调试正在发生的事情(我在IDE中根本看不到这一点)

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

尝试单击并添加一个Thread.Sleep(5000)或类似的东西,然后查看错误是否是由于单击或等待部分造成的


如果是等待部分,那么我有一个与单击部分不同的建议。

我在不同的平台上看到过类似的问题。它对我来说总是有点随机的,所以我不使用clickandWait。一般来说,进行简单的点击,然后等待特定的条件,会更加可靠。您可以执行waitforpageload,但这对我来说也不可靠,因此我更喜欢waitfortextpresent和waitforelementpresent之类的操作。

通常,如果您处理的是非字符串的内容,就会出现这种错误。你能确保你只处理字符串吗

2可能的原因是:-

  • 执行text()时->它可能正在处理非字符串
  • [expression]->表达式(text()='!selenium test customer')在计算为False/True时可能会出现问题,因为如果a是映射/数组,则相应的键应该是字符串,而不是bool
  • text()='!selenium test customer'-->>这是分配操作吗?如果是,请确保text()返回左值或可变对象(基于您使用的语言)

  • 我降级到了2.24.1,但仍然得到了同样的结果,但使用的是不同的命令。我已经进一步降级-一直降级到2.23.0-仍然和你在其他浏览器(如chrome)中尝试的一样?是的,我在chrome中尝试过-同样的交易。IE从来没有为我使用过selenium-不断出现安全错误,所以我无法尝试。这毫无意义。你用过硒吗?@Hippyjim:是的,我在Python上用了很长时间。我可以看出你对答案不满意,请你对你的问题做一些解释。这将有助于阅读问题的人找出确切的原因。这其中哪一部分不清楚?请教育我。我正在将SELENIUM与FIREFOX结合使用,以使用HTMLSUITE开关运行测试。我使用XPATH查找元素并单击它。它失败并显示错误。您的回答要求我告诉您selenium是如何解析XPATH的,这与我的问题无关。谢谢。我试了一下——不幸的是,我在“点击”时也遇到了同样的错误。谢谢。我试了一下——不幸的是,我在“点击”时也犯了同样的错误。尝试在元素上使用sendKeys作为实验。它类似于:WebElement.sendKeys(Keys.RETURN);哦,如果您使用的是RC,那么我认为它更像:typeKeys(java.lang.String定位器,java.lang.String值)。另外,我认为有一种doclick方法。我知道这些可能不是您想要永久进行的更改,但键可能存在差异。很抱歉,我将其保留了这么久,我只是尝试在clickAndWait之前添加一个typeKeys调用,在元素上键入字母a…它工作正常。因此,相反,在另一个套件中运行的另一个测试失败,并出现相同的错误。奇怪,是吗?现在同样的测试失败了,在测试的后面,有一个类似的clickAndWait调用。我想这一定是硒虫。