我陷入了TestCase的一步。 Selenium Webdriver

时间:2015-04-17 09:09:22

标签: java selenium selenium-webdriver

我正在尝试使用Java中的Selenium WebDriver自动化测试用例,但是我被困在一步。我需要找到一个元素并单击它。我试图通过id,by class,csselector,licktext找到它......但是它没有用。

这就是我所做的:

driver.findElement(By.cssSelector("a[href=http://mucs70064.corp.knorr-bremse.com:1080/Windchill/app/#ptc1/site/listUtilities?oid=OR%3Awt.inf.container.ExchangeContainer%3A5&u8=1]")).click();    
driver.findElement(By.cssSelector("div[ext\\:tree-node-id*='site'][ext\\:tree-node-id*='listUtilities'] a")).click();    
driver.findElement(By.className("x-tree-node-anchor")).click();    
driver.findElement(By.className("x-tree-node-indent")).click();          

不幸的是,上述声明中没有一个有效。有谁知道我该怎么办?我为我的浏览器的开发人员工具显示了一张照片,但由于我没有足够的声誉来上传它,您可以在以下链接中看到该图像。

enter link description here

我真的很感激任何帮助!

此致 非常感谢 巴勃罗

1 个答案:

答案 0 :(得分:0)

我觉得这可能是因为unselectable属性的值为on。您可以等到属性值更改。我看到的其他属性是hidefocus=on

WebDriverWait wait = new WebDriverWait(driver,10);

wait.until(new ExpectedCondition<Boolean>() {
            public Boolean apply(WebDriver driver) {
                         WebElement button = driver.findElement(By.xpath("xpath"));
                         String enabled = button.getAttribute("unselectable");
                         if(enabled.equals("off")) 
                            return true;
                         else
                            return false;
                    }
});

修改

获取所有链接,然后点击最后一个链接。

List<WebElement> links = driver.findElements(By.className("x-tree-node-anchor"));
links.get(links.size()-1); //this will give you the last link