我使用以下代码滚动页面并关注quora上的用户(链接到页面:http://www.quora.com/Kevin-Rose/followers),向下滚动后会加载一定数量的用户,我使用下面给出的代码:< / p>
# find all the follow buttons that are loaded
button = driver.find_elements_by_xpath("//a[contains(text(), 'Follow')]")
#number of users loaded
no_of_followers = len(button)
#execute the code till all the users are followed
while(no_of_followers > 0):
count = 0
#follow all the users loaded by clicking follow button in a loop
while(count < no_of_followers):
button[count].click()
time.sleep(30)
print count
count = count + 1
#scroll down
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(30)'
#find newly loaded users
button = driver.find_elements_by_xpath("//a[contains(text(), 'Follow')]")
time.sleep(30)
#tracking no of users left unfollowed
no_of_followers = len(button)
我收到以下错误:
StaleElementReferenceException:消息:u'Element不再附加到DOM'; Stacktrace:
编辑1 :我尝试使用find_element_by_link _text
,但显然函数的输出对象不是可以迭代的链接列表。
答案 0 :(得分:1)
可能的问题是@ button [count] .click()。 我建议你使用for循环而不是while,并使用迭代器增加。
执行类似
的操作//你基本上需要一直点击第一个项目。迭代器应该只控制迭代次数
Driver.FindElement(By.Xpath("Your Xpath")).Click();
抱歉,不是python的专家。