Невозможно перейти с одного URL-адреса на другой без выхода из системы с помощью Python Selen Webdriver - PullRequest
0 голосов
/ 03 июня 2019
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 Ответ

1 голос
/ 03 июня 2019

Предупреждение: Это грубый код. Это неправильно во многих смыслах, и вам придется улучшить это.

Код -

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 s и EC.presence_of_element_located((By.ID, "myElement")) и т. Д., Чтобы сделать ваш код более надежным. Здесь, если элемент не найден в while True, он просто навсегда застрянет в подвешенном состоянии. Я думаю, ты бы этого не хотел. Если ты это сделаешь, кто я такой, чтобы остановить тебя. Мы все здесь взрослые.

Примечание: Здесь не используется driver.get, но вместо этого выполняется поиск идентификатора пользователя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...