我正在尝试使用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();
不幸的是,上述声明中没有一个有效。有谁知道我该怎么办?我为我的浏览器的开发人员工具显示了一张照片,但由于我没有足够的声誉来上传它,您可以在以下链接中看到该图像。
我真的很感激任何帮助!
此致 非常感谢 巴勃罗
答案 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