【问题标题】:Selenium RC - t.replace is not a functionSelenium RC - t.replace 不是函数
【发布时间】:2012-08-04 14:07:41
【问题描述】:

[为 Godman 编辑] 我正在开发一个基于 Web 的应用程序,用 PHP 编写。我正在使用 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 的真正旧线程。 有什么想法吗?

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

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

clickAndWait   css=a.edit_company

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

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

type    id=Address1     Address1

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

【问题讨论】:

  • 我降级到 2.24.1,但仍然得到相同的东西,但使用不同的命令。
  • 我已经进一步降级 - 一直到 2.23.0 - 还是一样
  • 你在chrome等其他浏览器上试过了吗?
  • 是的,我在 Chrome 中尝试过——同样的交易。 IE 从来没有为我使用过 selenium - 不断出现安全错误,所以我无法尝试。

标签: testing selenium


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢。我试了一下 - 不幸的是,“点击”也出现了同样的错误。
  • 很奇怪。尝试在元素上使用 sendKeys 作为实验。它类似于:WebElement.sendKeys(Keys.RETURN);糟糕,如果您使用的是 RC,请稍等,那么我认为它更像是:typeKeys(java.lang.String locator, java.lang.String value)。另外,我认为有一个 doclick 方法。我知道这些可能不是您想要永久进行的更改,但关键可能在于差异。
  • 很抱歉留下这么久,我只是尝试添加一个 typeKeys 调用以在 clickAndWait 之前在元素上键入字母 A ......并且它没有错误地工作。因此,另一个测试,在另一个运行 before 的套件中,该测试失败并出现相同的错误。很奇怪吧?
  • 从头开始 - 现在相同的测试失败了,在测试的后期使用了类似的 clickAndWait 调用。我认为这必须是一个硒错误。
【解决方案2】:

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

【讨论】:

  • 谢谢。我试了一下 - 不幸的是,“点击”也出现了同样的错误。
【解决方案3】:

通常,如果您处理的不是字符串,就会发生这种错误。你能确保你只处理字符串吗?

它产生的2种可能性:-

  1. 执行 text() 时 -> 它可能正在处理非字符串
  2. a[expression] -> 当评估为 False/True 时,表达式(text() = '!selenium test customer') 可能是问题,因为如果 a 是 Map/array,则相应的键应该是字符串,并且可能不是布尔值。
  3. 文本()='! selenium test customer' -->> 是赋值操作吗?如果是,请确保 text() 返回左值或可变对象(基于您使用 selenium rc 的语言)

【讨论】:

  • 这毫无意义。你用过硒吗?
  • @Hippyjim:是的,我已经在 Python 中使用了很长时间。如我所见,您对答案不满意,能否请您对您的问题添加一些解释。这将有助于阅读问题的人找出确切原因。
  • 这其中哪一部分不清楚?请教育我。我正在使用 SELENIUM 和 FIREFOX 来使用 HTMLSUITE 开关运行测试。我正在使用 XPATH 查找元素并单击它。它失败并显示错误。您的回答要求我告诉您 selenium 如何解析 XPATH - 这与我的问题无关。
猜你喜欢
  • 2012-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-30
  • 1970-01-01
  • 1970-01-01
  • 2013-10-05
  • 1970-01-01
相关资源
最近更新 更多