我正在 Selenium 中编写一个文本,该文本获取表格的最左侧列,并验证其单元格中的字符串是否与我拥有的日期列表匹配。我的代码看起来像这样:
dates = ["20130501", "20130502", "20130506", "20130507", "20130508", "20130509", "20130510", "20130513", "20130514", "20130515"]
mytable = self.driver.find_element(By.ID, "mytable")
datecells = mytable.find_elements(By.CSS_SELECTOR, "tbody td:first-child")
for date, cell in zip(dates, datecells):
print "'{0}', '{1}'".format(date, cell.text) # For debugging
#self.assertEqual(date, cell.text)
当断言被注释掉时,我得到这个打印出来的结果:
'20130501', '' "20130502', '' '20130506', '' '20130507', '' '20130508', '' '20130509', '' '20130510', '' '20130513', '' '20130514', '' '20130515', ''
奇怪的是,如果我在打印上放置一个断点(将 MyEclipse 与 PyDev 一起使用),并在输出之前查看 PyDev Debug 的变量选项卡中的单元格,我可以看到正确的文本,并且代码按预期输出:
'20130501', '20130501' '20130502', '20130502' '20130506', '20130506' '20130507', '20130507' '20130508', '20130508' '20130509', '20130509' '20130510', '20130510' '20130513', '20130513' '20130514'、'20130514' '20130515', '20130515'
WebElement .text 属性是否有一些奇怪的观察者效应怪癖,它只能由这个调试器正确评估,或者是否有一些条件我应该等待以便从单元格中获取正确的值而不必单步执行?