为什么硒方法get(),不工作第二次?



帮我弄清楚为什么第二次使用get()方法时,页面不去?该方法仅在使用延时时间时有效。睡眠()

不工作:

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')

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

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

您正在尝试登录网站。
这个过程需要一些时间。
因此,如果立即点击提交页面后,而登录仍然没有进行,你试图导航到一些内部页面,这将无法工作,因为你仍然没有登录。
但是,您不需要使用硬编码的5秒睡眠。
您可以使用显式等待预期条件,如某些内部元素的presence_of_element_located(),以表明您在网站内部。一旦满足了这个条件,您就可以导航到所需的内部页面。

尝试另一种方法:

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

最新更新