无法单击元素

时间:2018-01-01 07:56:17

标签: c# selenium internet-explorer-11

我在点击IE11浏览器上的元素时遇到问题(网络只支持IE浏览器) 到目前为止,我已经尝试过所有我知道的东西 正在找到该元素,并且根据测试通过,看起来它被点击了,但没有发生任何事情。它没有被执行。 这就是HTML:

<li tabindex="-1" title="forward" class="ms-crm-CommandBarItem ms-crm-CommandBar-Menu ms-crm-CommandBar-Button" id="email|NoRelationship|Form|Mscrm.Form.email.Forward" style="display: inline-block; white-space: pre-line;" command="email|NoRelationship|Form|Mscrm.Form.email.Forward"><span tabindex="-1" class="ms-crm-CommandBar-Button ms-crm-Menu-Label" style="max-width: 200px;"><a tabindex="0" class="ms-crm-Menu-Label" onclick="return false"><img tabindex="-1" class="ms-crm-ImageStrip-forwardedemail_16 ms-crm-commandbar-image16by16" style="vertical-align: top;" src="/_imgs/imagestrips/transparent_spacer.gif"> <span tabindex="-1" class="ms-crm-CommandBar-Menu" style="max-width: 150px;" command="email|NoRelationship|Form|Mscrm.Form.email.Forward"> forward to rec</span><div class="ms-crm-div-NotVisible"> 
new object has been created </div>  </a> </span> </li>

这些只是我尝试过的一些内容,以下XPath语法实际上适用于同一页面中的其他元素。

WebDriverWait wait = new WebDriverWait(_webdriver, TimeSpan.FromSeconds(30));
var element = wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//[@id='email|NoRelationship|Form|Mscrm.Form.email.Forward']")));
element.Click();

var element = wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//*[@id='email|NoRelationship|Form|Mscrm.Form.email.Forward']")));IJavaScriptExecutor executor = (IJavaScriptExecutor)_webdriver;
executor.ExecuteScript("arguments[0].click();", element);

我也试过使用Action类来点击,但没有任何效果。也仅使用FindElement(By.Id(''))。 在某些情况下,看起来鼠标悬停在元素上,但同样没有真正执行点击。

UPD:我正在尝试点击实际上某个按钮,后面的层次结构中有一个spana标签。 我发现手动,按下按钮工作得很好。在尝试点击它之前,首次使用Selenium查找元素时,该按钮会被“锁定”。

1 个答案:

答案 0 :(得分:1)

尝试以下代码:

WebDriverWait wait = new WebDriverWait(_webdriver, TimeSpan.FromSeconds(10));
var element = wait.Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("a.ms-crm-Menu-Label")));
element.Click();

PS:点击链接。 (a代码)。

希望它可以帮到你!