先決條件。
您需要Instagram上的帳戶才能使用此腳本。
設置一個測試環境:
滾動到Selenium Webdriver(Python)
登錄,打開所需的列表(正常工作):
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
driver = webdriver.Chrome(
# driver = webdriver.Firefox(
# driver = webdriver.PhantomJS(
service_args=['--ignore-ssl-errors=true', '--ssl-protocol=any'])
driver.get("https://instagram.com/accounts/login")
username = driver.find_element_by_name("username")
password = driver.find_element_by_name("password")
username1 = 'instagram' # change it!
password1 = 'instagrampassword1' # change it!
username.send_keys(username1)
password.send_keys(password1)
submit_button = driver.find_element_by_css_selector(
'#react-root > div > article > div > div:nth-child(1) > div > form > span > button')
submit_button.click()
sleep(2)
link = 'https://www.instagram.com/youtube/'
driver.get(link)
driver.implicitly_wait(2)
driver.find_elements_by_class_name("_218yx")[2].click()
錯誤滾動。 如何解決此塊?
如何在此頁面上正確對焦和滾動?
我嘗試:
driver.find_element_by_class_name("_cx1ua").send_keys(Keys.NULL) # focus
#The element has been deleted entirely or
#The element is no longer attached to the DOM.
driver.find_element_by_class_name("_q44m8").send_keys(Keys.NULL)
# cannot focus element
driver.find_element_by_class_name("_qjr85").send_keys(Keys.NULL)
# cannot focus element
for i in range(5):
driver.find_element_by_class_name("_cx1ua").send_keys(Keys.END)
==================================== =========================
to @Moshisho:
我們需要關注一些元素來激活它。
問題是我們需要選擇關注的元素以及如何?
這不是一個「體」:
類似的東西,但不是這樣的:
background = driver.find_element_by_css_selector("body")
# background = driver.find_element_by_css_selector("div._2uju6")
for i in range(5):
background.send_keys(Keys.SPACE)
time.sleep(1)
沒有它,這個命令不工作。
到@Naveen:
print(driver.find_element_by_css_selector("div._a1rcs").location_once_scrolled_into_view) # {'x': 0, 'y': 0}
print(driver.find_element_by_class_name("_cx1ua").location_once_scrolled_into_view) # {'x': 376, 'y': 229}
print(driver.find_element_by_class_name("_q44m8").location_once_scrolled_into_view) # {'x': 376, 'y': 180}
print(driver.find_element_by_class_name("_qjr85").location_once_scrolled_into_view) # {'x': 376, 'y': 180}
而且接下來會發生什麼?
driver.execute_script("window.scrollTo(0, 3000);") # do not working
您的問題應該作爲題外話閉上。提供一些細節和描述,使你的問題更清楚......不是每個人都有'Instagram':)帳戶 – Andersson
即使你不使用Android/iOs,你也可以註冊。 – lvcpp
Web版本足以完成此任務。 – lvcpp