我正在尝试在 java 中使用 Selenium WebDriver 自动化测试用例,但我陷入了一步。我需要找到一个元素并单击它。我尝试通过 id、class、cselector、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
我真的很感激任何帮助!
问候多谢巴勃罗
我觉得这可能是因为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
我是一名优秀的程序员,十分优秀!