Получить span внутри класса, используя WebDriver и Selenium - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь отменить имя человека в промежутке.Этот промежуток находится внутри класса.

Следуйте 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)

Ответы [ 4 ]

0 голосов
/ 11 декабря 2018

Как уже упоминалось в комментарии: Xpath также очень гибок:

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

for contact in contacts:
name=contact.text
print(name)
0 голосов
/ 11 декабря 2018

Вы можете просто использовать селектор CSS, а затем распечатать атрибут text элемента span:

contacts = browser.find_elements_by_css_selector('._32mo span')
for contact in contacts:
    print(contact.text)
0 голосов
/ 11 декабря 2018
# 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@domain.tld")
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 голосов
/ 11 декабря 2018

Более простой способ сделать это - проверить элемент, затем в верхнем левом углу консоли использовать маркер стрелки и щелкнуть Goutham Pullela, после чего он будет выделен на консоли.Скопируйте этот xpath и используйте name = browser.find_elements_by_xpath('[paste xpath']).text print(name)

...