通过webdriver运行测试时未添加元素

时间:2013-09-16 23:16:52

标签: selenium webdriver selenium-webdriver bdd thucydides

我正在为使用jbehave / selenium / webdriver的bdd框架编写一个故事,并且在运行故事时测试遇到错误但在手动运行时看起来很好。我遇到了一个问题,当我在firefox上运行测试时,我正在测试的功能的javascript略有不同,在同一系统/ firefox版本上通过selenium web驱动程序运行测试,这种差异导致js错误。 / p>

我已经调试了,基本上问题的根源似乎是var request_XML_container = $('div_appendpoint_id');在我手动运行测试时与在运行bdd框架时返回不同的东西。

    var request_XML_container = $('div_appendpoint_id');
    request_XML_container.innerHTML = encoded_xml_from_request;
    var pos = method_to_get_position('id_of_place_div_should_be_appended_to');

    // JS exception is thrown saying that style is not defined **ONLY** 
    // when running through web driver.  Running test manually on 
    // same system and same browser works fine.
    request_XML_container.style.left = (pos[0] - 300) + 'px';
    request_XML_container.style.top = (pos[1] + 25) + 'px';
    request_XML_container.style.display = "block";

为什么在手动运行var request_XML_container = $('div_appendpoint_id');将返回定义了样式的项目时会正常工作,但是在通过webdriver运行时,不会定义元素的样式属性? < / p>

UPDATE :我原本以为这是在更新iframe,但是我读错了标记,我看到的iframe是一个兄弟 - 而不是父亲 - 响应所在的元素附加到。我试图简单地将响应附加到div。说实话,这只会让事情变得更加混乱,因为通过id获取div应该是非常直接的,我现在确定为什么webdriver会在这种情况下产生不同的返回元素。

更新2 :重现的步骤和我正在使用的系统的信息:

  1. 使用webdriver导航到此网址:http://fiddle.jshell.net/C3VB5/11/show/
  2. 让webdriver单击按钮。它应该不起作用
  3. 再次运行测试,但暂停在代码中设置断点以单击驱动程序
  4. 单击webdriver打开的浏览器上的按钮。它应该不起作用
  5. 刷新webdriver打开的浏览器上的浏览器页面。现在,它应该工作。
  6. 系统详情:
    • OS:OS X 10.8.5(12F37)
    • IDE:Eclipse Kepler:Build id:20130614-0229
    • 浏览器(手动和webdriver使用):Firefox 23.0.1
    • Selenium版本:2.35.0
  7. 更新3 :我在github上提供了这个maven项目,以帮助复制:https://github.com/dkwestbr/WebdriverBug/tree/master/Webdriver

    概要/ tl:dr; 基本上,在某些情况下,似乎webdriver使用不返回带有innerHTML或样式定义的HTMLElement的方法覆盖'$()'javascript方法(除其他事项外)。这篇文章详细介绍了这个问题以及如何重现。

    我已打开此故障单来跟踪问题:https://code.google.com/p/selenium/issues/detail?id=6287&thanks=6287&ts=1379519170

1 个答案:

答案 0 :(得分:0)

我已经确认这是Thucydides框架的一个错误(可以理解,因为它们仍然不是1.0版本)。

可以在此处跟踪问题:https://java.net/jira/browse/THUCYDIDES-203