当前位置: 首页 > 知识库问答 >
问题:

如何使用Selenium Java点击应该在同一窗口中打开的链接

仲孙宇定
2023-03-14
WebElement linkpath = driver.findElement(By.xpath("//div[text()='vivo Y12G (Glacier Blue, 64 GB)']"));

JavascriptExecutor js = (JavascriptExecutor) driver;

js.executeScript("document.getElementByXpath("+linkpath+").setAttribute('target', 'self')");

linkpath.click();

错误:

JavaScriptException:javascript错误:意外标记“:”

共有1个答案

林蕴藉
2023-03-14

代码的问题在于这一行:

js.executeScript("document.getElementByXpath("+linkpath+").setAttribute('target', 'self')");

您试图传递一个对象(由第一行代码标识的元素)而不是xpath字符串(getElementByXpath)

您有两种选择:

    null
String xpath = "//div[text()='vivo Y12G (Glacier Blue, 64 GB)']"
WebElement linkpath = driver.findElement(By.xpath(xpath));
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementByXpath(xpath).setAttribute('target', 'self')");
linkpath.click();
WebElement linkpath = driver.findElement(By.xpath("//div[text()='vivo Y12G (Glacier Blue, 64 GB)']"));
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].setAttribute('target', 'self')",linkpath);
linkpath.click();
 类似资料:
  • 我正在处理一个(父)网页的需求,该网页有一些链接,比如Link1、Link2和Link3。当我单击链接1(将在活动窗口1(子窗口)的新窗口中打开)时,当我单击链接2/Link3时,页面应在同一窗口(窗口1)中打开。 问:Javascript/Jquery/Ajax中是否有实现此功能的方法。请分享你对此的宝贵想法。 注意:如果没有打开任何链接,则应弹出一个新窗口。我知道我们在HTML中有选项targ

  • 我尝试了各种方法来打开在.js文件中导入的.ftl文件中的新窗口中的链接,但都不成功。 下面是.js中的代码

  • 问题内容: 在主选项卡的Web元素中嵌入了一个链接,我想使用SeleniumWebdriver和python在同一窗口的新选项卡中打开该链接。在新标签页中执行一些任务,然后关闭该标签页并返回主标签页。我们将手动执行此操作,方法是右键单击链接,然后选择“在新选项卡中打开”以在新选项卡中打开该链接。 我刚接触硒。我正在使用Selenium和BeautifulSoup进行网络抓取。我只知道如何点击链接。

  • 我正在使用Pygame模块制作一个简单的游戏。我需要Tkinter窗口与Pygame窗口一起打开。 每当我试图打开两个窗口时,第二个窗口只有在我杀死第一个窗口后才会打开。 现在,我能想到的唯一解决方案是使用多线程。但是,我无法实现它。 我该怎么做呢?我真的很感激这里的帮助。谢谢你!

  • 问题内容: 我需要在同一父页面中打开链接,而不是在新页面中打开它。 注意:和父页面是 同一个域 。 问题答案: 我发现最好的解决方案是使用 基本 标签。将以下内容添加到iframe页面的顶部: 这将在父窗口中加载页面上的所有链接。如果要在新窗口中加载链接,请使用: 所有浏览器均完全支持此标签。