selenium firefox驱动程序python

selenium firefox驱动程序python,python,selenium-webdriver,Python,Selenium Webdriver,我有使用selenium 2.32和Firefox驱动程序的python函数脚本。在html上,如下所示: 我需要的文本 我正在尝试使用“#提醒div ul li strong”进行css选择器搜索。我得到了WebElement(比如分配给variable元素),但是当我尝试获取文本(使用元素。text)时,我得到的是空的 当我调试我的测试时,这也是一个非常一致的行为,当我运行整个套件时,有时成功,有时失败,我无法找出问题所在。如果有人对如何继续有想法,请告诉我 另外,我正在Pyth

我有使用selenium 2.32和Firefox驱动程序的python函数脚本。在html上,如下所示:


  • 我需要的文本
我正在尝试使用
“#提醒div ul li strong”
进行css选择器搜索。我得到了
WebElement
(比如分配给variable元素),但是当我尝试获取文本(使用
元素。text
)时,我得到的是空的

当我调试我的测试时,这也是一个非常一致的行为,当我运行整个套件时,有时成功,有时失败,我无法找出问题所在。如果有人对如何继续有想法,请告诉我


另外,我正在Python2.7上运行这个程序,我只想简单介绍一下我发现了什么,以及我为解决问题做了什么。在解释我所观察到的行为之后,我会提出一些问题。首先将伪html放在下面

<div id="reminder">
  <div>
    <ul>
      <li>
        <strong>text i need</strong>
      </li>
    </ul>
  </div>
</div>
这将上面的html大致转换为

<div id="reminder">
  <div class="a few accordian specifc classes" >
    <ul>
      <li>
        <strong>text i need</strong>
      </li>
    </ul>
  </div>
</div>

  • 我需要的文本
现在看起来,accorbian上的click bind函数映射到内部div,上面有accorbian类,而不是。因此,在我的脚本中,我使用带有“#rementer”的css_选择器并调用click()时,它没有打开accorbian,因此没有显示内部文本,因为我的带有文本的“#提醒div ul li strong”选择器给出的是空文本(我仍然不明白为什么它是空的,整个元素可能被隐藏了,但文本仍然不是空的),一旦我将我的单击css_选择器更改为使用类似于“#提醒div”的内容并调用click()在它上面,事情开始起作用了。我能够在调试时始终通过测试

现在回答问题:

  • 我仍然不明白为什么测试有时作为CI套件的一部分运行时通过,有时失败,而在IDE的调试模式下运行时总是失败

  • 我有一些测试(7-10)在作为CI的一部分运行时总是失败,而当我在本地单独运行它们时,它们通过了,我也以它们在CI上运行的相同方式运行测试,失败次数较少,但仍有一些(1-2),但当我单独运行那些失败的测试时,它们通过了。测试依赖性可能存在各种问题,这可能会导致这种情况,但在本地相同的测试中通过了。我将在整理完这些问题后公布结果


谢谢你的回答。

是不是只有文本给出了问题?例如,如果你尝试执行
getElement()
要找到父元素,它是否正确返回
  • 元素,还是同样失败?@vincebowdren我可以使用element.parent获取父元素。问题是只获取标记内的文本。@user1177636我们使用jquery作为前端javascript,我使用firebug中的选择器确保e只是一个元素。如果在调试时这是一个一致的行为,则脚本预期的内容与实际浏览器DOM之间一定存在一些不匹配。能否使用调试脚本并找出问题的根源?
    <div id="reminder">
      <div class="a few accordian specifc classes" >
        <ul>
          <li>
            <strong>text i need</strong>
          </li>
        </ul>
      </div>
    </div>