2017-06-06 52 views
-2

Actions action = new Actions(driver); IWebElement we = driver.FindElement(By.XPath(".//*[@class='ms-crm-CommandBar-Button ms-crm-Menu-Label']"));
action.MoveToElement(driver.FindElement(By.XPath(".//*[@class='ms-crm-CommandBar-Button ms-crm-Menu-Label-Hovered']"))).Click().Build().Perform();
为什么我不能在这段代码中点击这个元素?

期望元素如下:

< 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-New_16 ms-crm-commandbar-image16by16" style="vertical-align: top;" src="/_imgs/imagestrips/transparent_spacer.gif"> <span tabindex = "-1" class="ms-crm-CommandBar-Menu" [enter image description here][1]style="max-width: 150px;" command="lead|NoRelationship|HomePageGrid|Mscrm.NewRecordFromGrid"> New </span> <div class="ms-crm-div-NotVisible"> Create a new Lead record. </div>
</a> </span>

注意,此类"ms-crm-CommandBar-Button ms-crm-Menu-Label"原来是"ms-crm-CommandBar-Button ms-crm-Menu-Label-Hovered"当鼠标悬停。

非常感谢。

+0

错误的复制和粘贴。其实,没有“。”盈方// –

+0
+0

你好 - 欢迎来到SO--请阅读“如何提问”之前:https://stackoverflow.com/help/how-to-ask – Cadburry

回答

0

当您搜索悬停的元素时,它不存在。 因此,您需要先悬停元素,然后才能找到并单击悬停元素。 action.MoveToElement(driver.FindElement(By.XPath("//*[@class='ms-crm-CommandBar-Button ms-crm-Menu-Label']"))).Build().Perform().MoveToElement(driver.FindElement(By.XPath("//*[@class='ms-crm-CommandBar-Button ms-crm-Menu-Label-Hovered']"))).Click().Build().Perform();

+0

结果消息:\t 测试方法UnitTestProject1.CRMTest.CRM_Test_in_IE抛出异常: OpenQA.Selenium.NoSuchElementException:无法使用xpath查找元素== // * [@ class ='ms-crm-CommandBar-Button ms-crm-Menu -Label'] –

+0

我尝试了下面的代码,并且看到图标上的高亮显示(lable + New),但Click完全不能执行。操作action = new Actions(driver); ()。)))。MoveToElement(driver.FindElement(By.XPath(“// img(”//“)) [@ src ='/ _ imgs/imagestrips/transparent_spacer.gif']“)))。Click()。Build()。Perform(); –

+0

此代码工作..最后。谢谢。操作action = new Actions(driver); ();();();构造()。执行();()。 ();)();();();(); –

0

在悬停的情况下,首先需要moveTo那个元素后,你可以点击它。

Actions actions = new Actions(driver); 
action.moveToElement(mainMenu).moveToElement(driver.findElement(By.xpath("ur element"))).click().build().perform(); 
+0

Actions action = new Actions(driver); ()。)()。Build()。Perform()()方法返回一个数组, ; ()。)。Click()。Build()。()。Build()。() ().Perform();和 结果消息:测试方法UnitTestProject1.CRMTest.CRM_Test_in_IE抛出异常:OpenQA.Selenium.NoSuchElementException:无法使用xpath查找元素== // * [@ class ='ms-crm-CommandBar-Button ms-crm-Menu-标签'] –

+0

此代码工作..最终。谢谢。操作action = new Actions(driver); action.MoveToElement(driver.FindElement(By。XPath(“// * [@ class ='ms-crm-Menu-Label']”)))。Click()。Build()。P erform(); driver.FindElement(By.XPath(“// * [@ class ='ms-crm-CommandBar-B utton ms-crm-Menu-Label-Hovered']”))。Click(); –

相关问题