單擊以下HTML代碼的元素不起作用。無法使用Xpath查找元素
a class="add" href="/travelPlan_revamp/addTravel.htm?travel_type=D">Add</a>
我使用的是下一個的XPath:顯示html/body/div[1]/div[2]/div/a
但No Such Element Found
例外。
單擊以下HTML代碼的元素不起作用。無法使用Xpath查找元素
a class="add" href="/travelPlan_revamp/addTravel.htm?travel_type=D">Add</a>
我使用的是下一個的XPath:顯示html/body/div[1]/div[2]/div/a
但No Such Element Found
例外。
對不起你們的事情是它在iframe中。現在我已經通過切換到iframe然後單擊一個事件來找到解決方案。 (「rightMenu」);()。 driver.findElement(By.xpath(「html/body/div [1]/div [2]/div/a」))。click();
很難判斷您的XPATH表達式在沒有HTML的情況下是否正確。 你XPATH表達式告訴:
因此檢查是否存在檢查Xpath表達式的「a」元素。
首先確保web元素不在iframe內。 如果是,那麼你需要先切換到iframe,然後嘗試點擊元素。
另外,嘗試下面的XPath,如果你已經捕獲錯誤的XPath: -
//a[@class='add' and .='Add']
的絕對XPath總是以正斜槓 '/' 開頭。我認爲你已經使用了絕對的xpath,或者你錯過了'/'或者你在這裏引用了錯誤。請驗證它。通常絕對的xpath將看起來像/ HTML /體/形式/ DIV [3]/DIV [2]/DIV [1]/DIV [2] /輸入
嘗試此XPath:
//a[contains(text(),'Add')];
再次出錯 org.openqa.selenium。InvalidSelectorException:無效的選擇器:由於以下錯誤,無法定位帶有xpath表達式的元素// a [contains(text(),'Add')]: TypeError:未能在'Document'上執行'createNSResolver':參數1不是'節點'類型。 – Lokesh
//a[@class='add' and text()='Add']
試試這個。
通過哪種方法查找元素?
@FindBy (how = How.XPATH)
或
driver.findElement(By.xpath());
有時@FindBy符號不喜歡和XPath的正常工作。
嘗試用下面這樣的XPath
//一個[包含(文本(), '添加')]
錯誤再次org.openqa.selenium.InvalidSelectorException:無效的選擇器:由於以下錯誤,無法找到具有xpath表達式的元素// a [contains(text(),'Add')]:TypeError:未能執行'在'Document'上創建NSResolver':參數1不是'Node'類型。 – Lokesh
確保元素不在iframe內。 Xpath可以通過Firebug獲得。 –