我试图遍历匹配的类名返回的许多元素,这些类名已存储在数组users
中。 print(len(users))
输出为12,这对于应该返回多少应该是正确的。这是我的代码:
def follow():
time.sleep(2)
# iterate here
users = []
users = browser.find_elements_by_class_name('wo9IH')
print(len(users))
for user in users:
user_button = browser.find_element_by_css_selector('li.wo9IH div.Pkbci').click()
#user_button = browser.find_element_by_xpath('//div[@class="Pkbci"]/button').click()
但是,目前仅索引[0]被.click()
填充,并且该程序在第一次单击后终止。为什么要迭代的索引没有递增,这将会是什么问题?
资源: image-红色表示正在迭代的内容,蓝色表示每个按钮都被.click()
答案 0 :(得分:0)
尝试一下,
您可以直接制作buttons
数组而不是li
数组,
转到单击所有按钮,其中包含文本为Follow
,
简单
browser.maximize_window()
users = []
users = browser.find_elements_by_xpath('*//button[text()='Follow']')
print(len(users)) # check it must be 12
for user in users:
browser.execute_script("arguments[0].click()", user)
# user.click() Go click all buttons
答案 1 :(得分:0)
找到所有css_selector元素作为列表,然后迭代该列表以执行.click()
yourList = browser.find_elements_by_css_selector('w0o9IH div.Pkbci')
答案 2 :(得分:0)
users = browser.find_elements_by_class_name('wo9IH')
返回selenium.webdriver.remote.webelement.WebElement
个实例的列表,这些实例也可以是横向的。
在迭代的实现中,忽略了有关列表中项目的上述事实,并且通过遍历WebDriver
实例( ie { {1}}。
以下是在匹配的browser.find_element_by_css_selector
中获取按钮的方法:
WebElement