from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome('C:\Program Files\Python36\Drivers\chromedriver.exe')
driver.get("https://www.instagram.com/accounts/login/")
elem2 = driver.find_element_by_name("username")
elem2.send_keys('*')
elem3 = driver.find_element_by_name("password")
elem3.send_keys('*')
elem3.send_keys(Keys.ENTER)
driver.get('https://www.instagram.com/*/')
要登录,代码可以正常工作,但是从那里我不确定在保持登录状态的情况下如何进入另一个用户页面。当我尝试执行driver.get()方法时,它再次使我退出
++我还刚刚发现,当我登录并使用driver.current_url()时,它将返回原始页面“ https://www.instagram.com/accounts/login/”而不是“ https://www.instagram.com/”
答案 0 :(得分:1)
警告:这是原始代码。从很多方面来说,这是错误的,您必须对此加以改进。
代码-
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome('location/to/chrome/driver')
driver.get("https://www.instagram.com/accounts/login/")
elem2 = driver.find_element_by_name("username")
elem2.send_keys('username')
elem3 = driver.find_element_by_name("password")
elem3.send_keys('password')
elem3.send_keys(Keys.ENTER)
while True:
try:
elem4 = driver.find_element_by_css_selector(".-Cab_, .bIiDR")
elem4.click()
break
except Exception:
pass
elem5 = driver.find_element_by_xpath('//*[@id="react-root"]/section/nav/div[2]/div/div/div[2]/input')
elem5.send_keys("chucknorris")
while True:
try:
elems = driver.find_elements_by_class_name("yCE8d")
elems[0].click()
break
except Exception:
pass
您需要改进什么?添加timeout
和EC.presence_of_element_located((By.ID, "myElement"))
等以使您的代码更健壮。在这里,如果在while True
中找不到元素,那么它将永远陷入困境。我想你不想那样。如果你这样做,我是谁阻止你。我们都是成年人。
注意:这不使用driver.get
,而是搜索用户ID。