【发布时间】:2014-12-08 17:36:56
【问题描述】:
我正在尝试以这种方式在 for 循环内访问父 WebElement <div class="post"> 的子 WebElements (img 和 p 标签)。
self.posts = self.driver.find_elements_by_xpath("//div[@class='post']")
for post in self.posts:
self.image = post.find_element_by_xpath(".//a/img")
str = self.image.get_attribute("src").replace("b.", ".")
self.title = post.find_element_by_xpath(".//div/p")
self.title. # <<<<<------- Has no attributes or functions
请注意,我已使用相对 XPATH 路径来访问引用其父 post(.//a/img 和 .//div/p)的子 WebElements
我可以获得self.image 的WebElement 对象上下文,它具有所有WebElement 属性。如您所见,我可以使用self.image.get_attribute()
但是,当我在循环中并尝试将 post 变量实例化为 self.title 时,该变量没有任何属性,并且我的智能感知说 “没有建议”
我的疑问是,为什么...为什么我可以使用 post 引用来实例化 WebElement 对象 self.image 但我不能对 self.title 做同样的事情
【问题讨论】:
-
这纯粹是 代码完成(“我的智能感知”)的问题,还是您的 Selenium 代码没有以您的方式执行想?这两个问题之间存在显着差异。请编辑您的问题以澄清。
-
@Louis 如果如上所述,第一次智能感知在循环内工作正常。我相信它第二次也能正常工作,问题来自语言领域或我对 python 的缺乏经验。
标签: python unit-testing testing selenium webdriver