C# 找不到元素
我不确定我的方法是否正确。我正在尝试使用名称选择器查找值'Arty'C# 找不到元素,c#,selenium,selenium-webdriver,C#,Selenium,Selenium Webdriver,我不确定我的方法是否正确。我正在尝试使用名称选择器查找值'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 rem
<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();
}
Arty
//然后我从搜索中删除“Arty”
[然后(@“我从搜索中删除“(.*)”)]
公共静态void removeAceptButton(字符串searchName)
{
var button=Driver.Instance.FindElements(By.cssSelector(“.selected facets slide button”);
var itemToRemove=Driver.Instance.FindElement(By.Name(searchName));
itemToRemove.Click();
}
错误:无法定位元素:{“方法”:“名称”,“选择器”“艺术”此
按钮上不存在名称
属性。请改用XPath定位器:
Driver.Instance.FindElement(By.XPath(string.Format("//button[. = '{0}']", searchName)));
很抱歉复制和粘贴。我希望做的是从specflow步骤中捕获'SearchName'的值,并将其传递给变量'itemToRemove'。我希望避免指定硬编码的值。希望这有意义?@AkifTahir好吧,答案仍然适用,没有“名称”属性。我建议的XPath应该与按钮匹配。感谢@alecxe,它工作得很好:)如果我有多个按钮,并且想要单击某个按钮,是否有方法将参数“searchName”的名称传递到XPath中?