2017-02-16 74 views
-1

這裏是我使用WebElement

 <div class="modal-footer"> 
 
<button class="btn btn-primary" type="button" value="Show Alert" ng-click="questions.getIrMessage()" 
 
data-dismiss="modal">Confirm</button> 
 
<button class="btn btn-primary" type="button" ng-click="questions.showIrGrid()" data-dismiss="modal">Edit</button> 
 
</div>

我想找到HTML中使用下面的代碼行 '編輯' 按鈕

[FindsBy(How = How.XPath, Using = "//button[contains(text(),'Edit')]")] 
public IWebElement btnEdit; 

當我嘗試使用此屬性時,我收到沒有元素髮現異常。

當我在代碼擴展btnEdit財產,我可以看到的是,「顯示」屬性設置爲false,也text屬性爲空Property image

請參考附件圖像。

但是,當我試圖找到'確認'按鈕沒有問題,我能夠找到webelement。

什麼是沒有得到該按鈕的原因webelemnt.Thank你提前

+0

顯示屬性是否與確認按鈕相同? –

+0

將頁面加載到瀏覽器中後,在開發控制檯中運行'$ x(「// button [contains(text(),'Edit')]」)。length。它是否返回> 0?看看加載的頁面的HTML,你能看到這個元素,爲什麼它可能被隱藏?您可能需要發佈鏈接到該頁面或更多相關的HTML。 – JeffC

回答

0

硒模擬用戶操作。您的元素對用戶不可見(display = none),因此Selenium也無法讀取它。

可以使用發現隱藏的元素:

IList<IWebElement> hidden = driver.FindElements(By.CssSelector("button[style=display:none]")); 

你會發現你的元素在此列表中。

+0

你在哪裏可以看到該按鈕隱藏在所提供的HTML中?即使是這樣,你的代碼也無法工作。 – JeffC

0

感謝大家對你的reply.There都具有相同名稱的兩個元素,那就是爲confusion.Actually的原因,我希望第二個one.Below是我用點擊按鈕的代碼,我想 SeleniumWrapper.driver.FindElements(By.XPath("//button[contains(text(),'Edit')]"))[1].Click();