首页 > 解决方案 > 下拉选项在新选项卡中打开 Selenium

问题描述

它在同一选项卡本身中打开。我想重定向到下一个标签或下一个窗口。

代码:

try
{   
    for(int i=1;i<=9;i++)
    {
        if(i==1)
        {
            System.out.println("No Condition applied");
        }
        else if(i==2)
        {
            WebElement menu2=driver.findElement(By.xpath("/html/body/div[2]/div[2]/div/div/ul/li["+i+"]/a"));
            Actions action=new Actions(driver);
            //It opens in same page
            action.moveToElement(menu2).moveToElement(driver.findElement(By.xpath("/html/body/div[2]/div[2]/div/div/ul/li[2]/ul/li["+i+"]/a"))).click().build().perform();
            //mouse hover on selected drop down
            action.moveToElement(menu2).moveToElement(driver.findElement(By.xpath("/html/body/div[2]/div[2]/div/div/ul/li[2]/ul/li["+i+"]/a"))).build().perform();
            //Should open in New Tab-But Not working
            action.moveToElement(menu2).moveToElement(driver.findElement(By.xpath("/html/body/div[2]/div[2]/div/div/ul/li[2]/ul/li["+i+"]/a"))).sendKeys(Keys.CONTROL).sendKeys(Keys.ENTER).build().perform();
        }
    }
}
catch(Exception e)
{
    System.out.println("Menu button not found");
}

标签: javaselenium-webdriver

解决方案


你可以使用Actions

WebElement element = driver.findElement(By.xpath("/html/body/div[2]/div[2]/div/div/ul/li[2]/ul/li["+i+"]/a"));
Actions action = new Actions(driver);
action.keyDown(Keys.SHIFT).click(element).keyUp(Keys.SHIFT).build().perform();

作为旁注,不要使用 absolute xpath,它很脆弱。尽量使用id/class属性。


推荐阅读