为什么 Selenium 方法 get() 第二次不起作用?

Why Selenium method get(), doesnt work second time?

帮我看看为什么第二次用get()方法,页面进不去了?该方法仅在您使用时间延迟 time.sleep ()

时有效

不工作:

LOGIN = 'something@mail.com'
PASS = 'somepass'
LINK = 'https://stepik.org/'

browser = webdriver.Chrome()
browser.get(LINK)
browser.implicitly_wait(5)
browser.find_element_by_id('ember232').click()
username = browser.find_element_by_name('login').send_keys(LOGIN)
pas = browser.find_element_by_name('password').send_keys(PASS)
button = browser.find_element_by_xpath('//button[@type = "submit"]').click()
browser.get('https://stepik.org/lesson/237240/step/3?unit=209628')

工作

LOGIN = 'something@mail.com'
PASS = 'somepass'
LINK = 'https://stepik.org/'

browser = webdriver.Chrome()
browser.get(LINK)
browser.implicitly_wait(5)
browser.find_element_by_id('ember232').click()
username = browser.find_element_by_name('login').send_keys(LOGIN)
pas = browser.find_element_by_name('password').send_keys(PASS)
button = browser.find_element_by_xpath('//button[@type = "submit"]').click()
time.sleep(5)
browser.get('https://stepik.org/lesson/237240/step/3?unit=209628')

尝试另一种方法:

driver.navigate().to("https://stepik.org/lesson/237240/step/3?unit=209628")

您正在尝试登录网站,然后导航到某个内部页面。
通过点击提交按钮

button = browser.find_element_by_xpath('//button[@type = "submit"]').click()

您正在尝试登录该站点。
这个过程需要一些时间。
因此,如果在单击提交页面后立即登录仍未继续,您正在尝试导航到某个内部页面,这将不起作用,因为您仍未登录。
但是,您不需要使用 5 秒的硬编码睡眠。
您可以使用显式等待预期条件,例如某些内部元素的 presence_of_element_located() 来指示您在网站内。满足此条件后,您可以导航到所需的内部页面。