Selenium webdriver自动化,自动化上下文菜单选项

时间:2016-02-17 17:28:47

标签: selenium-webdriver

在selenium(Java)中右键单击后,我无法单击任何元素。 它只是右键单击并没有点击任何选项,比如在新标签页中打开...而是在执行右键单击后进行正常点击。任何人都可以帮助我。我的代码是

System.setProperty( “webdriver.chrome.driver”, “C:\硒\ chromedriver.exe”);         WebDriver wd = new ChromeDriver();

    wd.get("http://google.com");
    Thread.sleep(3000); 
    //Point a=wd.findElement(By.linkText("Testing")).getLocation();
    WebElement b=wd.findElement(By.linkText("About"));
    Actions action=new Actions(wd);

    //action.contextClick(b).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ENTER).perform();
    action.moveToElement(b);
    Thread.sleep(4000);
    //action.contextClick(b);
    action.contextClick(b);
    action.sendKeys(Keys.ARROW_DOWN).sendKe ys(Keys.ENTER).build().perform();

我已尝试通过上下文单击并移动到元素但没有结果。提前感谢..

1 个答案:

答案 0 :(得分:0)

这可能是你想要的:

要从上下文菜单中选择项目,您只需使用按键向下事件移动鼠标位置,如下所示: -

Actions action= new Actions(driver);
action.contextClick(b).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.RETURN).build().perform();

Soure:Select an Option from the Right-Click Menu in Selenium Webdriver - Java

根据评论中的请求,添加在新标签页中打开链接的替代方法。

    System.setProperty("webdriver.chrome.driver", "Drivers\\chromedriver.exe");
    WebDriver driver= new ChromeDriver();
    driver.get("http://www.google.com/");
    WebDriverWait wait = new WebDriverWait(driver, 30);
    Thread.sleep(3000); 
    WebElement b=driver.findElement(By.linkText("About"));
    Actions action=new Actions(driver);
    action.moveToElement(b).perform();
    Thread.sleep(4000);
    action.keyDown(Keys.CONTROL);
    action.click();
    action.keyDown(Keys.CONTROL).build().perform();
    //action.sendKeys(Keys.RETURN).perform();
    Thread.sleep(4000);
    driver.quit();

使用 build()方法将所有列出的操作编译成一个步骤。我们在执行操作序列时使用build()。如果我们执行单一操作,我们可以直接使用perform()。您可以阅读有关Actions类的更多信息。

另外,重复一遍我无法在有限的时间内找到问题的根源,所以我做了一个工作。因此,我们使用快捷键CTRL + CLICK手动打开新标签中的链接,您可能需要查找所需内容的快捷方式,您可以参考:https://support.google.com/chrome/answer/157179?hl=en

希望有所帮助:)