【发布时间】:2016-12-25 17:29:48
【问题描述】:
先决条件。
您需要 Instagram 帐户才能使用此脚本。
设置测试环境:
登录,打开需要的列表(正常工作):
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)
================================================ ===============
致@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的帐户:) -
即使不使用Android/iOs也可以注册。
-
网页版就够了。
-
您的尝试是为了聚焦或滚动特定元素?
-
是的,我想滚动所有关注者列表,每次访问查看 > 10 个关注者。
标签: python selenium selenium-webdriver