程序应该检测instagram中的所有心脏,然后给出一个“like”。我知道有一个InstagramAPI,但是我试图用Selenium来实现教育目的。另外,我正在使用Chrome。
这就是我目前所尝试的:
# scroll down to the bottom of the page
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
driver.maximize_window()
# find all heart links
hearts = driver.find_elements_by_xpath("//button[@class='dCJp8 afkep coreSpriteHeartOpen _0mzm-']")
for i in range(len(hearts)):
hearts[i].click()
sleep(3)
错误:
selenium.common.exceptions.WebDriverException: Message: unknown error: Element <button class="dCJp8 afkep coreSpriteHeartOpen _0mzm-">...</button> is not clickable at point (192, 20). Other element would receive the click: <div class=" Igw0E rBNOH eGOV_ ybXk5 _4EzTm ">...</div>
(Session info: chrome=71.0.3578.98)
从我所能理解的来看,我的程序所指向的元素似乎不正确。这就是我正在使用的:
我还尝试了上跨和子跨元素。有没有人知道可能出什么事了?提前谢谢。
编辑:
已使用actionChain()解决。在尝试单击该元素之前,我先添加了移动到该元素的代码。
hearts = driver.find_elements_by_xpath("//span[@class='fr66n']")
for h in range(len(hearts)):
ActionChains(driver).move_to_element(hearts[h]).click(hearts[h]).perform()
print(hearts[h])