我尝试以这种方式访问<div class="post">
循环内的父WebElement for
的子WebElements (img和p tags)。
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
的子WebElements(.//a/img和.// div / p)
我可以获取self.image
的WebElement对象上下文,它具有所有WebElement属性。如您所见,我可以使用self.image.get_attribute()
但是,当我在循环中,并尝试将post
变量实例化为self.title
时,该变量没有任何属性,我的智能感知&# 34;没有建议&#34;
我的疑问是,为什么......为什么我可以使用post
referente来实例化一个WebElement对象self.image
,但我不能用self.title
< / p>
答案 0 :(得分:0)
Awwhnn¬¬我觉得自己很蠢......
@Louis这是一个intellisense问题。你说的没错。无论intellisense说什么...我会赞成你的评论给你赞誉,因为它对我有帮助。谢谢你!
有效:
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")
print(self.title.text)
无论如何,我已经吸取了教训......