【问题标题】:Cannot click on a button when using watir webdriver with IE8 but works for Firefox在 IE8 中使用 watir webdriver 时无法单击按钮,但适用于 Firefox
【发布时间】:2015-03-02 12:42:08
【问题描述】:

当我使用 Firefox v35.01 时,我的 watir-webdriver 验收测试成功运行。但是,当我将浏览器切换到 IE8 时,涉及单击登录按钮的第一步失败并出现以下错误:

Unable to find element with xpath == .//button[contains(concat(' ', @
class, ' '), '  x-btn-text login ')] | .//input[contains(concat(' ',      @class, ' '
), '  x-btn-text login ') and (translate(@type,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abc
defghijklmnopqrstuvwxyz')='button' or translate(@type,'ABCDEFGHIJKLMNOPQRSTUVWXY
Z','abcdefghijklmnopqrstuvwxyz')='reset' or translate(@type,'ABCDEFGHIJKLMNOPQRS
TUVWXYZ','abcdefghijklmnopqrstuvwxyz')='submit' or translate(@type,'ABCDEFGHIJKL
MNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')='image')] (Selenium::WebDriver::Error::NoSuchDocumentError)

按钮的代码是

td class="x-btn-mc"><em class="" unselectable="on"><button class=" x-btn-text login" id="ext-gen64" type="button">Login</button></em>

我用来点击按钮的代码是:

@browser.button(:class => " x-btn-text login").when_present.click

我在跑步

环境为:Windows 7 32 bit,IE8 v8.0.7601, Firefox v35, Ruby 1.9.3, Selenium-webdriver (v2.44) and Watir-webdriver (v0.66)

【问题讨论】:

  • 您正在测试的页面是否有可能公开?有了给定的 HTML 和代码,IE8 似乎对我来说工作得很好。虽然我使用的是 Selenium-Webdriver v2.45(具有匹配的 IEDriverServer 版本)。
  • 嗨@JustinKo 我不相信这个页面会公开可用,因为它是我工作的公司的内部应用程序,但我会仔细检查。我的 IEDriverServer 版本是 v2.25.3.0。有没有链接我可以找出哪个 IEDriverServer 版本与哪个 Selenium-Webdriver 版本匹配?
  • 我尝试过使用 Selenium-Webdriver v2.44 和匹配的 IEDriverServer 版本,但仍然出现相同的错误:-(

标签: selenium-webdriver watir-webdriver


【解决方案1】:

如果 ID 值一致,您可能想尝试使用它来选择按钮。在有效的 HTML 中,id 值在页面上是唯一的,并且页面上不能有多个元素(框架内的内容除外)具有相同的 ID。

如果您还没有确认提供给 IE8 的 HTML 是否与 Firefox 相同,请仔细检查。

IE8 仅对 HTML 5 提供基本支持。scores 仅 33 与 IE11 的 336 或当前 Firefox 和 Chrome 的 450+ 相比。因此,如果网站检测到 IE8 并使用不同的代码以与那个 6 岁的旧浏览器兼容,那么该网站可能会“降档”

【讨论】:

  • 嗨查克感谢您的想法!我已经尝试使用 ID 选择按钮并得到相同的结果。但是,您关于检查 IE8 所提供的 HTML 的其他建议听起来可能是罪魁祸首。我曾尝试使用 IE 中的开发人员工具查看 HTML(单击 F12),但由于某种原因,没有加载 HTML 标签,我只收到一些文字说Loading......,但没有加载,它就在那里。我还尝试安装 IE 开发人员工具栏,但在没有加载 HTML 的情况下得到了类似的结果。
  • 也许以上是我的问题的另一个症状,或者可能是它的原因。我认为我使用的 IE8 浏览器是定制的,用于我们工作中的标准操作环境。我正在考虑卸载它,如果我能找到它,可能会从 Microsoft 网站重新安装一个版本,然后再试一次。是否有其他人遇到过 IE 开发人员工具无法为网站加载 HTML 的问题?
  • 好像有人遇到过类似的问题here我的应用使用了 ExtJS,所以也许值得一试
  • 我最近遇到了一个问题,即 IE 开发人员工具无法加载 HTML。事实证明,我们错误地关闭了一些元素。当 Chrome/Firefox 优雅地处理和解释 HTML 时,IE8 一遍又一遍地重复不正确的 HTML,直到 HTML 变得太大而开发人员工具无法处理。我认为将您的页面精简到重现问题所需的最低限度可能会有所帮助。
  • 我尝试将我的自动化测试迁移到运行 Windows 2003 服务器、IE8 v8.0.6001、selenium-webdriver v2.31 和 IEDriverServer v2.25.3 的旧 VM 测试环境中。在此环境中,IE 中的开发人员工具成功加载了 HTML,我点击登录按钮的自动化测试工作正常。我希望我有一个更确凿的解释,但我用于测试的 Windows 7 VM 映像(包含 IE8 v8.0.7601)似乎有些损坏。再次感谢您的 cmets 和建议。
猜你喜欢
  • 1970-01-01
  • 2020-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-17
  • 2021-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多