也许这些元素需要加载你没有考虑到时间,你去找他们时,他们还没有“搜索” 。 更新我跳过关于这个问题的例子。请参阅Slanec的评论。
无论如何,Selenium建议尽可能避免通过xpath进行搜索,因为速度更慢,更“脆弱”。 你可以找到你的元素是这样的:
//see the method code below
WebElement div = findDivByTitle("Action Selected Jobs");
//example of searching for one (first found) element
if (div != null) {
WebElement myElement = div.findElement(By.className("context-menu-item"));
}
......
//example of searching for all the elements
if (div != null) {
WebElement myElement = div.findElements(By.className("context-menu-item-inner"));
}
//try to wrap the code above in convenient method/s with expressive names
//and separate it from test code
......
WebElement findDivByTitle(final String divTitle) {
List<WebElement> foundDivs = this._driver.findElements(By.tagName("div"));
for (WebElement div : foundDivs) {
if (element.getAttribute("title").equals(divTitle)) {
return element;
}
}
return null;
}
这是近似的代码(根据你的解释),你应该使其更好地适应你的目的。同样,请记住考虑加载时间,并将实用程序代码与测试代码分开。
希望它有帮助。
您是否尝试过使用硒IDE(for firefox)为您生成命令? – Izzy