如何在网页上单击所有带有特定文本的按钮,一个接一个

how to click on a webpage all buttons with specific text, one by one

我有 this quora 网页作为示例

它包含 4 个 "View Upvoters" 按钮 使用这段代码,我想获取所有 4 个按钮,以便稍后一个一个地单击它们。

upvoter_list = wait.until(EC.presence_of_all_elements_located((By.CLASS_NAME, 'AnswerVoterListModalLink')))

print(len(upvoter_list)) 给我 4,这是正确的 当我打印 upvoter_list

第一个元素的文本时
print(upvoter_list[0].text) 

我得到 'view upvoters' 作为结果 但是当我打印剩余部分时,我得到的结果是空的,

print(upvoter_list[1].text)

有什么问题?

使用这个(更新)

from selenium import webdriver 
from time import sleep
from bs4 import BeautifulSoup
obj = webdriver.Chrome('path to driver')


list_of_upvoters = []
obj.get('https://www.quora.com/Have-you-ever-countined-to-pursue-someone-who-wasnt-interested-in-you')
sleep(5)
obj.execute_script("window.scrollTo(0, document.body.scrollHeight);")
sleep(5)
obj.execute_script("window.scrollTo(0,1);")
sleep(5)

for p in obj.find_elements_by_class_name('AnswerVoterListModalLink'):
    sleep(5)
    p.click()
    sleep(10)
    for div in obj.find_elements_by_class_name('author_info'):
        list_of_upvoters.append(div.find_element_by_class_name('user').text)
    print(list_of_upvoters)
    list_of_upvoters = []
    sleep(10)
    obj.find_element_by_class_name('modal_close').click()
    sleep(10)

尝试 get_attribute("textContent") 而不是 text

How to get inner text of an element in Selenium?