未在硒中识别的Web元素c#

时间:2017-02-16 13:41:43

标签: javascript c# html selenium

这是我正在使用的HTML

        <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>

我正在尝试使用以下代码行找到“编辑”按钮

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

当我尝试使用此属性时,我收到No Element found exception。

当我在代码中展开btnEdit属性时,我可以看到'Displayed'属性为false,text属性为空Property image

请查看附件。

但是当我试图找到“确认”按钮时,没有任何问题,我能够找到这个元素。

没有获得按钮的原因是什么。请提前感谢

2 个答案:

答案 0 :(得分:0)

Selenium模拟用户操作。您的元素对用户不可见(display = none),因此Selenium也无法读取它。

您可以使用以下方法找到隐藏的元素:

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

您应该在此列表中找到您的元素。

答案 1 :(得分:0)

感谢大家的回复。有两个同名的元素,这就是混淆的原因。实际上我想要第二个.Below是我用来点击我想要的按钮的代码 SeleniumWrapper.driver.FindElements(By.XPath("//button[contains(text(),'Edit')]"))[1].Click();