不使用Selenium WebDriver Python登出就无法从一个URL移到另一个URL

时间:2019-06-03 19:42:17

标签: python selenium selenium-webdriver

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/

1 个答案:

答案 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

您需要改进什么?添加timeoutEC.presence_of_element_located((By.ID, "myElement"))等以使您的代码更健壮。在这里,如果在while True中找不到元素,那么它将永远陷入困境。我想你不想那样。如果你这样做,我是谁阻止你。我们都是成年人。

注意:这不使用driver.get,而是搜索用户ID。