Python中Selenium webdriver如何通过部分URL调用driver.get访问页面
回答
driver.get() 本身不支持通配符匹配的URL写法。
这个方法的入参要求是完整、可被浏览器解析的合法URL,你传入带*的字符串时,浏览器会把*当成普通的路径字符处理,根本不会做模糊匹配,最终只会返回404或者地址无效错误,不可能跳转到你想要的事件详情页。
可落地的替代实现方式
- 从页面元素提取真实完整URL:你可以先进入事件列表页/相关入口页,通过你已知的事件ID(也就是示例里的
1234)定位到对应事件的入口链接,提取href属性拿到完整地址后再跳转,参考代码:
from selenium.webdriver.common.by import By # 先访问可拿到事件入口的公共页面 driver.get("www.dummy.com/all-events") # 模糊匹配href里包含/1234的事件链接 target_event = driver.find_element(By.CSS_SELECTOR, 'a[href*="/1234"]') # 提取完整合法URL real_url = target_event.get_attribute("href") # 跳转至目标页 driver.get(real_url)
- 枚举校验:如果事件名的可选范围是固定可枚举的,可以把所有可能的事件名路径段提前列出来,和已知的固定URL部分拼接,逐个尝试访问,通过页面特征(比如是否存在ID为1234的事件标题、专属元素)判断是不是目标页。
- 接口获取:如果能调用站点的内部查询接口,可以直接传事件ID调用接口拿到完整的事件路径,拼接成合法URL后再访问,这种方式效率最高。
内容的提问来源于stack exchange,提问作者glitch_123
相关产品推荐
相关产品推荐

