【发布时间】:2022-01-09 10:48:20
【问题描述】:
当您登陆 selenium 中的最终 URL 时,如何从中间重定向 URL 获取查询参数。
我需要在最终到达 selenium 测试中的最终目标 URL 之前测试某个查询参数是否存在于一个中间重定向 URL 中。有没有简单的方法来拉取重定向 URL 或者将它们保存为列表?Example redirects
【问题讨论】:
-
您可以捕获网络日志并进行验证。
当您登陆 selenium 中的最终 URL 时,如何从中间重定向 URL 获取查询参数。
我需要在最终到达 selenium 测试中的最终目标 URL 之前测试某个查询参数是否存在于一个中间重定向 URL 中。有没有简单的方法来拉取重定向 URL 或者将它们保存为列表?Example redirects
【问题讨论】:
就像Nandan 建议的那样,您最好的选择是捕获网络日志或使用其他工具。
Selenium 尝试以与最终用户相同的方式与浏览器交互。由于最终用户不太可能关心(甚至注意到)中间 URL,因此 Selenium 并没有真正提供检查查询参数的可靠方法。
在页面之间转换时,在大多数情况下,Selenium 会等待页面完全加载,然后才允许您的代码与之交互。这意味着您执行任何尝试获取参数的操作(例如检查页面 URL)都不太可能失败。
您可以尝试使用 Selenium 的 Javascript 执行器来检查 referrer。这可能行不通;某些页面禁用或编辑它。但值得一试。
等到最终页面加载完毕,然后使用 execute_script 方法(或与 Selenium 绑定等效的方法)获取引荐来源网址:
driver.execute_script "return document.referrer"
然后,使用 String 方法找到您的查询参数。
【讨论】: