Selenium Webriver:菜单和子菜单问题

时间:2016-08-18 09:25:39

标签: selenium selenium-webdriver

我为一个演示电子商务应用程序编写了脚本,我面临着菜单和子菜单的问题。当我运行脚本时,它会将我带到登录页面,同时它会检查产品类别并单击子菜单。但我的要求是在登录后应检查产品类别,然后点击子菜单。

 public static void main(String[] args) {
    WebDriver driver = new FirefoxDriver();
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    driver.manage().window().maximize();
    driver.get("http://store.demoqa.com/");

    driver.findElement(By.id("account")).click();
    driver.findElement(By.id("log")).sendKeys("username");
    driver.findElement(By.id("pwd")).sendKeys("password");
    driver.findElement(By.id("login")).click();

    WebElement elemnt= driver.findElement(By.linkText("Product Category"));
    Actions action= new Actions(driver);
    action.moveToElement(elemnt).build().perform();
    driver.findElement(By.linkText("iPads")).click();

    driver.findElement(By.id("account_logout")).click();
    driver.quit();
    }

请帮忙。

2 个答案:

答案 0 :(得分:0)

要与“select”元素(下拉列表)进行交互,您应该使用select命令。希望在Java中这样的东西(我熟悉的C#语法有点不同):

driver.select("linkText="Product Category", "label=iPads");

答案 1 :(得分:0)

尝试使用以下代码 -

 public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.get("http://store.demoqa.com/");

driver.findElement(By.id("account")).click();
driver.findElement(By.id("log")).sendKeys("username");
driver.findElement(By.id("pwd")).sendKeys("password");
driver.findElement(By.id("login")).click();

Thread.sleep(8000);
WebElement elemnt= driver.findElement(By.linkText("Product Category"));
Actions action= new Actions(driver);
action.moveToElement(elemnt).build().perform();
driver.findElement(By.linkText("iPads")).click();

driver.findElement(By.id("account_logout")).click();
driver.quit();
}