如何使用Selenium Python点击仅含部分URL的a标签链接
解决Selenium中相对路径href的链接点击问题
有几种实用的解决方式,直接对应你的场景:
1. 直接点击定位到的元素
浏览器会自动把相对路径补全成完整URL,不用手动拼接,直接点击a标签就行。调整你的定位代码,直接定位到元素:
# 直接定位到目标<a>标签 post_links = driver.find_elements("xpath", "//div[@class='owl-stage']//div[@class='single_post_text']/a") for link in post_links: link.click()
点击后浏览器会自动跳转到https://vietstock.vn/xxx的完整链接。
2. 手动拼接URL后跳转
如果不想直接点击元素,也可以拿到相对路径后自己拼接完整URL,再用driver.get()访问:
base_domain = "https://vietstock.vn" post_links = driver.find_elements("xpath", "//div[@class='owl-stage']//div[@class='single_post_text']/a") for link in post_links: relative_path = link.get_attribute("href") full_url = base_domain + relative_path driver.get(full_url) # 处理完当前页面后需要返回的话,加一行 driver.back()
注意:因为你的相对路径开头是/,所以base_domain不要加末尾的/,避免出现https://vietstock.vn//xxx这种错误格式。
3. JavaScript强制点击(应对元素不可交互的情况)
如果直接用click()遇到元素不可点击、被遮挡之类的问题,用JavaScript强制触发点击:
post_links = driver.find_elements("xpath", "//div[@class='owl-stage']//div[@class='single_post_text']/a") for link in post_links: driver.execute_script("arguments[0].click();", link)
这种方式同样会让浏览器自动补全相对路径,跳转到完整URL。
内容的提问来源于stack exchange,提问作者Binh
相关产品推荐
相关产品推荐

