我有使用selenium 2.32和Firefox驱动程序的python函数脚本。在如下的HTML:
<div id="reminder">
<div>
<ul>
<li>
<strong>text i need</strong>
</li>
</ul>
</div>
</div>
我正在尝试使用"#reminders div ul li strong"
进行css选择器搜索。我得到WebElement
(比如分配给变量元素),但是当我尝试获取文本时(使用element.text
),我变空了。
当我调试我的测试时,这是一个非常一致的行为,当我运行整个套件时,有时它是成功的,有时它失败,我无法找出问题是什么,如果有人请让我知道有关于如何进行的想法。
我也在python 2.7上运行它
答案 0 :(得分:0)
我将简要介绍一下我发现的以及我为解决问题所做的工作。并且在我正在观察的行为的解释结束时会提出一些问题。首先把伪html放在
之下<div id="reminder">
<div>
<ul>
<li>
<strong>text i need</strong>
</li>
</ul>
</div>
</div>
我们拥有的django模板将转换为上面的任何javascript。我们使用
来使用上面的手风琴$('#reiminders').accordian({ alwaysOpen: false, active: false,collapsible: true,autoHeight:false})
将上述html翻译为粗略
<div id="reminder">
<div class="a few accordian specifc classes" >
<ul>
<li>
<strong>text i need</strong>
</li>
</ul>
</div>
</div>
现在看起来像手风琴上的单击绑定功能被映射到内部div上,而不是如此,当我在我的脚本中我正在使用“#reminder”执行css_selector并在其上调用click()时它没有打开手风琴,因此内部文本没有被显示,因为我的“#reminders div ul li strong”选择器带有文本给出了空文本(我仍然不明白为什么它是空的,整个元素可能已被隐藏但是文本仍然是空的),一旦我改变了我的点击css_selector以使用类似'#reminders div'并在其上调用click(),事情就开始起作用了。我能够在调试时始终如一地通过测试。
现在问题:
我仍然不明白为什么测试在CI中作为套件的一部分运行时有时会失败,有时会在我的IDE上以调试模式运行时失败,但总是失败
我有一些测试(7-10),当作为CI的一部分运行时总是失败,而当我在他们单独传播它们时,我也以他们在CI上运行的相同方式运行测试虽然当我单独运行那些失败的测试时它们会通过,但是我会得到更少的失败次数(1-2)。测试依赖性可能存在各种问题,这可能会导致这种情况,但是在本地相同的测试中会通过。一旦我解决了这个问题,我会把结果推出来。
感谢您的回答。