如何使用java在点击链接时打开一个新窗口

6yoyoihd  于 2023-01-01  发布在  Java
关注(0)|答案(4)|浏览(283)
if(driver.findElement(By.xpath("xxx")).isDisplayed() != True){
    // if clicked in the above condition is True then it has to be opened in a new window
    driver.findElement(By.xpath("xxx")).click();
}

else {
    System.out.println("element not present -- so it entered the else loop");
}
p8h8hvxi

p8h8hvxi1#

您可以使用下面的代码在新窗口中打开链接:

WebElement link = driver.findElement(By.xpath("your link xpath"));
Actions newwin = new Actions(driver);
newwin.keyDown(Keys.SHIFT).click(link).keyUp(Keys.SHIFT).build().perform();
Thread.sleep(6000);

通常我们按下SHIFT键并使用鼠标点击打开新窗口中的链接,我在这里通过 selenium 代码做了同样的事情。

ahy6op9u

ahy6op9u2#

还有一种方法是注入JS来设置链接的target属性:

WebElement link = driver.findElement(By.linkText("my link"));
JavascriptExecutor js = (JavascriptExecutor) driver;
String script = "return arguments[0].target='_blank'";
Object result = js.executeScript(script, link);
link.click();

结果行可能可以忽略,但我发现这更可靠。
顺便说一句:
1)永远不要比较对或错。而要

if (condition != true)

if (! condition)

2)不要每次都查找相同的元素。只查找一次并保存引用。
3)您无法单击未显示的链接。

ghg1uchk

ghg1uchk3#

您可以使用下面的代码片段;只要用你想要的替换定位器,它就会工作:

driver.get("https://www.google.co.in");

Actions act = new Actions(driver);
act.moveToElement(driver.findElement(By.xpath("//a[.='हिन्दी']"))).contextClick().sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).sendKeys(Keys.ENTER).build().perform();

上面的代码片段导航到谷歌网站,然后右键单击有关链接"हिन्दी"在这种情况下,并使用向下键两次到达“在新窗口中打开链接”的选项,然后发送“Enter”键点击它,然后打开一个新窗口。
注意:-****这在Firefox和Chrome中运行良好。如果是Internet Explorer,您可能需要添加一个额外的sendKeys(keys.DOWN),这应该很好,因为“在新窗口中打开链接”的选项位于第三位。请检查代码片段的更改,如下所示:

act.moveToElement(driver.findElement(By.xpath("//a[.='हिन्दी']"))).contextClick().sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).sendKeys(Keys.DOWN).sendKeys(Keys.ENTER).build().perform();
6uxekuva

6uxekuva4#

//opens the browser
driver.get("https://www.instagram.com/");
//create object for Actions class and pass driver value     
  Actions ac=new Actions(driver);
//identify the WebElement
  WebElement signUpLink=driver.findElement(By.linkText("Sign up"));

点击(注册链接)。按键向上(按键控制)。构建()。执行();线程休眠(5000);
//以上代码将帮助在新页签中打开链接

相关问题