使用WebDriver和Selenium在类中获取span

问题描述 投票:1回答:4

我试图在一个跨度内废弃一个人的名字。这个范围在一个类中。

关注HTML:

<div>
<a class="_32mo" href="https://www.facebook.com/goutham.pullela?ref=br_rs">
<span>Goutham Pullela</span>
</a>
</div>

我正在尝试使用find_elements_by_class_name然后得到attribute,但span不是attribute。我没有这个span的身份证明。

contacts = browser.find_elements_by_class_name('_32mo')

for contact in contacts:
    name = str(contact.get_attribute('span'))
    print(name)
python selenium selenium-webdriver web-scraping webdriver
4个回答
0
投票

您可以简单地使用CSS选择器,然后打印text元素的span属性:

contacts = browser.find_elements_by_css_selector('._32mo span')
for contact in contacts:
    print(contact.text)

1
投票
# First we login into Facebook using:

from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get('https://www.facebook.com/')
driver.implicitly_wait(10)
email = driver.find_element_by_id("email")
email.send_keys("[email protected]")
passwd = driver.find_element_by_id("pass")
passwd.send_keys("MyP@$$w0rd");
passwd.send_keys(Keys.ENTER)

# Then We can search and retrieve the name list:

driver.get('https://www.facebook.com/search/283544874786/likers?ref=about')
x = driver.find_elements_by_xpath(".//a[contains(@class, '_32mo')]")
for y in x:
    print(y.text)

Goutham Pullela
Avvaru Srinivasa Rao
Sanjay Bhushan
Ayurveda
Rachit Raj Ias
Anindita Sarkar (Rimi)
Sheela Arora
Padmapriya Rajesh
Manavi Singh
Sanaya Joshi
Kritika Singh
Nikhita Singh
Revathi
Sejal Budholiya
Devi Priya
Rashi Bhatia

0
投票

更简单的方法是检查元素,然后在控制台左上角,使用箭头标记并单击Goutham Pullela,然后您将在控制台上看到它突出显示。复制该xpath并使用name = browser.find_elements_by_xpath('[paste xpath']).text print(name)


0
投票

正如评论中所提到的:Xpath也非常灵活:

contacts = browser.find_elements_by_xpath("//a[@class='_32mo')]/span")

for contact in contacts:
name=contact.text
print(name)
© www.soinside.com 2019 - 2024. All rights reserved.