You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium Python如何修改链接_blank属性避免点击后打开新标签页

错误原因
  • 你在execute_script中直接使用了Python侧定义的gourl变量,JavaScript运行在浏览器沙箱环境中,无法读取Python侧的变量,这行脚本执行时会直接报错。
  • 你调用getElementById('nameofgood')查找元素,但目标元素仅设置了nameofgood类名,没有对应的id属性,无法通过该方法定位到目标元素。
  • 原有代码中browser.execute_script行的缩进多于上一行,不符合Python缩进语法要求,运行会直接抛出语法错误。
修正方案

你可以直接将Python侧定位到的元素作为参数传入JS脚本,直接修改它的target属性,无需二次查找元素:

firefoxProfile = FirefoxProfile()
firefoxProfile.set_preference('permissions.default.stylesheet', 2)
firefoxProfile.set_preference('permissions.default.image', 2)
firefoxProfile.set_preference("dom.popup_maximum", 0)
browser = webdriver.Firefox(firefoxProfile)

# CSS选择器可以简化,无需写全所有层级
gourl = browser.find_element_by_css_selector("h2 a.nameofgood")
# 将定位到的元素作为参数传入JS,arguments[0]对应传入的第一个参数
browser.execute_script("arguments[0].target = '';", gourl)
# 直接点击即可,无需额外使用ActionChains
gourl.click()

也可以选择更简单的方案,直接读取链接的href属性跳转,无需修改元素属性也无需模拟点击:

gourl = browser.find_element_by_css_selector("h2 a.nameofgood")
target_url = gourl.get_attribute('href')
browser.get(target_url)

内容的提问来源于stack exchange,提问作者Roman Legasov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 09:30:03