也許這些元素需要加載你沒有考慮到時間,你去找他們時,他們還沒有「搜索」 。 更新我跳過關於這個問題的例子。請參閱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