2015-10-14 177 views
1

我不確定我的方法是否正確。我正在嘗試使用名稱選擇器來查找'Arty'的值。無法找到元素

<button class="facet-button btn-large selected ng-scope keyword-facet" ng-click="removeFacet(sf)" ng-repeat="sf in selectedFacetsList">Arty</button> 

// Then I remove 'Arty' from my search 

[Then(@"I remove '(.*)' from my search")] 
public static void RemoveAFacetButton(string searchName) 
{ 
    var button = Driver.Instance.FindElements(By.cssSelector(".selected-facets-slide button")); 
    var itemToRemove = Driver.Instance.FindElement(By.Name(searchName)); 
    itemToRemove.Click(); 
} 

錯誤:無法找到元素:{ 「方法」: 「姓名」, 「選擇器」, 「附庸風雅」

回答

1

沒有namebutton元件上存在的屬性。而是使用XPath定位器:

Driver.Instance.FindElement(By.XPath(string.Format("//button[. = '{0}']", searchName))); 
+0

對不起,複製和粘貼。我希望做的是從我的specflow步驟中捕獲'SearchName'的值,並將其傳遞給變量'itemToRemove'。我想避免指定硬編碼值。希望這是有道理的? –

+0

@AkifTahir好,仍然適用,按鈕上沒有「名稱」屬性。我提出的XPath應該匹配按鈕。 – alecxe

+0

感謝@alecxe工作正常:)如果我有多個按鈕,並希望點擊一個特定的,有沒有辦法將我的參數'searchName'的名稱傳入XPath? –