为了账号安全,请及时绑定邮箱和手机立即绑定

Python Selenium WebElements和.text的问题

Python Selenium WebElements和.text的问题

月关宝盒 2021-03-31 12:07:24
我正在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属性是否存在一些奇怪的观察者效果怪癖,只能通过此调试器正确评估,还是有一些条件我需要等待才能从单元格中获取正确的值而不必单步执行?
查看完整描述

1 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

在使用PhantomJS的WebDriver进行了一些测试之后,我能够弄清楚这是Firefox的WebDriver的一个问题,并且发现了之前的问题:WebElement getText()在Firefox中是一个空字符串,如果元素在屏幕上不可见


因此,将for循环更改为


for date, cell in zip(dates, datecells):

    self.driver.execute_script("arguments[0].scrollIntoView(true);", cell)

    print "'{0}', '{1}'".format(date, cell.text)

    self.assertEqual(date, cell.text)

为了在获取每个单元格的文本之前将其滚动到视图中,我得到了预期的输出。


查看完整回答
反对 回复 2021-04-02
  • 1 回答
  • 0 关注
  • 247 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号