Selenium 未进行右键单击,并且在同一选项卡上单击了元素

Selenium 未进行右键单击,并且在同一选项卡上单击了元素,selenium,selenium-webdriver,Selenium,Selenium Webdriver,我有一个Selenium脚本来执行以下步骤: 推出网站- 点击“我是21+”按钮 移动到元素设备 右键单击ciro complete kit 问题在于,右键单击菜单保持原样,并且在同一页面上单击元素 这是我的密码: //website driver.get("https://vusevapor.com/"); //clicking on i am 21+ button driver.findElement(By.xpath("/html/body/aside/div[2]/div/div/di

我有一个Selenium脚本来执行以下步骤:

  • 推出网站-
  • 点击“我是21+”按钮
  • 移动到元素设备
  • 右键单击ciro complete kit
  • 问题在于,右键单击菜单保持原样,并且在同一页面上单击元素

    这是我的密码:

    //website
    driver.get("https://vusevapor.com/");
    
    //clicking on i am 21+ button
    driver.findElement(By.xpath("/html/body/aside/div[2]/div/div/div[2]/div/a[1]/span")).click();   
    
    Thread.sleep(5000);
    //xpath of devices menu
    
    WebElement devices = driver.findElement(By.xpath("//*[@id=\"store.menu\"]/nav/ul/li[2]/a/span"));
    
    //move to element devices
    
    Actions act = new Actions(driver);
    
    act.moveToElement(devices).build().perform();
    
    Thread.sleep(3000);
    
    //xpath of ciro complete kit
    
    WebElement ciroKit = driver.findElement(By.xpath("//*[@id=\"store.menu\"]/nav/ul/li[2]/ul/li[2]/ul/li[1]/a/span"));
    
    
    //right click on ciro complete kit 
    
    //*****Issue********right click is happening but the element is getting clicked on the same tab and right click menu remains as is
    
    act.contextClick(ciroKit).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ENTER).build().perform();
    
    试试这个: 备选案文1:

    act.contextClick(ciroKit).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.RETURN).build().perform();
    
    选择2- 使用Action和Robot类:

    act.contextClick(ciroKit).build().perform();
    Robot robot = new Robot();
    robot.keyPress(KeyEvent.VK_DOWN);
    robot.keyPress(KeyEvent.VK_ENTER);
    

    希望这有帮助。

    非常感谢!选项1不起作用,但选项2起作用。你能帮我理解为什么选项1不起作用吗?您的回复将帮助我完全理解这个问题。您使用的是哪个chrome版本?我的chrome版本是80.0.3987.116请看一看。