Mik*_*kel 5 python selenium xpath loops selenium-webdriver
我有这个HTML:
<div class="container">
<div class="name">James</div>
<div>Rodriguez</div>
<div class="image">
<div><img src="https://example.com/1.jpg"></div>
</div>
</div>
<div class="container">
<div class="name">Harry</div>
<div>Kane</div>
<div class="image">
<div><img src="https://example.com/2.jpg"></div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
如何遍历所有容器并获取名称,姓氏(第二个div)和图像URL(img src)?到目前为止,我想到了这个:
items = []
containers = driver.find_elements_by_xpath('//div[@class="container"]')
for items in containers:
name = items.find_element_by_xpath('//div[@class="name"]')
print(name.text)
Run Code Online (Sandbox Code Playgroud)
这应该给出两个名称。但是,我得到的'James'是输出的两倍,而没有'Harry'。
谢谢!
尝试以下解决方案以获得所需的值
for item in containers:
name = item.find_element_by_xpath('.//div[@class="name"]')
surname = name.find_element_by_xpath('./following-sibling::div')
image = surname.find_element_by_xpath('./following::img')
print(name.text, surname.text, image.get_attribute('src'))
Run Code Online (Sandbox Code Playgroud)
使用时,//您将从根节点 ( <html>)开始搜索。使用.之前xpath从元素位置开始搜索
for items in containers:
name = items.find_element_by_xpath('.//div[@class="name"]')
print(name.text)
Run Code Online (Sandbox Code Playgroud)