无法找到元素
问题描述:
我不确定我的方法是否正确。我正在尝试使用名称选择器来查找'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();
}
错误:无法找到元素:{ “方法”: “姓名”, “选择器”, “附庸风雅”
答
没有name
此button
元件上存在的属性。而是使用XPath定位器:
Driver.Instance.FindElement(By.XPath(string.Format("//button[. = '{0}']", searchName)));
对不起,复制和粘贴。我希望做的是从我的specflow步骤中捕获'SearchName'的值,并将其传递给变量'itemToRemove'。我想避免指定硬编码值。希望这是有道理的? –
@AkifTahir好,仍然适用,按钮上没有“名称”属性。我提出的XPath应该匹配按钮。 – alecxe
感谢@alecxe工作正常:)如果我有多个按钮,并希望点击一个特定的,有没有办法将我的参数'searchName'的名称传入XPath? –