前进、后退、刷新等页面导航操作
driver.get() vs navigate().to(),back()/forward()/refresh() 的行为差异
driver.get()
driver.back()
driver.forward()
driver.refresh()
driver.navigate().to()
driver.back() 返回上一页 · forward() 前进到下一页 · refresh() 刷新当前页面。
back()
forward()
driver.get(D)
""" 历史导航三部曲 —— 完整示例 """ from selenium import webdriver driver = webdriver.Chrome() driver.implicitly_wait(1) # ===== 构建 history stack ===== driver.get("https://www.page-a.com") # stack: [A] cursor → A driver.get("https://www.page-b.com") # stack: [A, B] cursor → B driver.get("https://www.page-c.com") # stack: [A, B, C] cursor → C # ===== back() / forward() ===== driver.back() # cursor → B, 显示 page-b driver.back() # cursor → A, 显示 page-a driver.back() # ⚠️ 到顶了!不会报错,静默 no-op print(driver.current_url) # → 还是 page-a driver.forward() # cursor → B driver.forward() # cursor → C driver.forward() # ⚠️ 到底了!也不会报错 # ===== refresh() ===== driver.refresh() # 等价于:在当前页重新发送一次请求(浏览器的 F5) # ⚠️ 不等价于 driver.get(driver.current_url) # refresh() 会带上 cache-control / 表单重提交提示 # get() 就是一次全新的导航 # ===== get() 会截断 forward 队列 ===== driver.back() # cursor → B driver.get("https://www.page-d.com") # stack 变成 [A, B, D] ← C 被砍掉! # 此时再 forward() 不会回到 C 了 —— 它已经被 purge 掉 driver.quit()
get(A) → get(B) → get(C)
back()、back()、forward()
print(driver.current_url)
driver.get(driver.current_url)
Python 自动化测试学习平台是一个面向软件测试工程师、开发人员及在校学生的交互式在线学习平台,专注于 Selenium WebDriver 与 Python unittest 自动化测试技能的教学与实践。
我们以"理论 + 实战 + 可交互演示"为核心特色,将八种常规元素定位和Javascript定位、元素操作、自动化测试工具、单元测试、测试模型等知识体系拆分为模块化课程,每个模块都配有可点击、可输入、可运行的模拟练习页面。
平台致力于降低自动化测试的入门门槛,让学习者从"看懂代码"到"动手实操",逐步掌握企业级自动化测试框架的设计与落地能力。
📧邮箱:lq@selenium-auto-test.com
📞电话:0755-12345678
📍地址:深圳
💬微信公众号:Selenium自动化测试
🐙GitHub:github.com/selenium-auto-test
1. 本平台所有示例代码、演示页面及教程内容均仅供学习交流使用,不构成任何商业推广或技术服务承诺。
2. 平台中的 Selenium API 描述、Python 语法说明均以官方文档为准,如有版本差异请以对应官方文档为准。
3. 学习者在实际项目中应用平台所学内容时,应结合自身项目环境进行充分测试,本平台不对因直接使用示例代码而产生的任何直接或间接损失承担责任。
4. 本平台所引用的第三方库(Selenium、ChromeDriver、unittest 等)版权归其各自作者及维护者所有。
5. 如涉及版权问题或内容建议,请及时通过联系方式与我们沟通,我们将第一时间处理。