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

如何使用Selenium Java点击target=_blank链接使其在当前窗口打开

问题根源

  • 你写的代码存在3个问题,直接导致报错和功能失效:
    1. 直接把Java侧的WebElement对象拼接到JavaScript字符串中,linkpath作为Java对象直接拼接时会自动调用toString()方法,输出类似WebElement: xxxx的带冒号的内容,插入JS代码后直接触发语法异常,也就是你遇到的Unexpected token ':'报错。
    2. JavaScript原生没有document.getElementByXpath这个方法,本身的查找逻辑就不成立。
    3. target属性的标准当前窗口值是_self,你写的self不符合规范,就算修改成功也不会生效。

解决方法

Selenium的JavascriptExecutor本身支持直接传入WebElement作为参数,在JS代码中用arguments[0]即可直接获取传入的元素对象,不需要在JS侧重新查找元素。

修改后的可运行代码如下:

WebElement linkpath = driver.findElement(By.xpath("//div[text()='vivo Y12G (Glacier Blue, 64 GB)']"));

JavascriptExecutor js = (JavascriptExecutor) driver;

// 直接传入linkpath作为JS的参数,用arguments[0]指代该元素
js.executeScript("arguments[0].setAttribute('target', '_self')", linkpath);

linkpath.click();

内容的提问来源于stack exchange,提问作者Dewulkar Shubham

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:54:00