0

我正在尝试单击具有 id="0" 的 div 标签。虽然它可以找到那个id,但无法点击它。点击其他 ids 工作。这在 Firefox 12 中有效,但在 13 中失败我正在使用 Selenium2 和 C#

driver.FindElement(By.XPath("//div[@class='MenuItem' and @id='0']")).Click();

<div style="position: absolute; top: 72px; left: 9px; " id="file" class="Menu">
<div class="MenuItem" id="0">&nbsp;<img src="images/UI/Icons/folder.png">Folder</div>
<div class="MenuItem" id="1">&nbsp;<img valign="middle"      src="images/UI/Icons/tree/folderBlogClosed.png">Blog</div>
<div class="MenuItem" id="2">&nbsp;<img valign="middle"   src="images/UI/Icons/folderBoard.png">Discussion Board</div>
</div>
4

3 回答 3

1

ID 属性以数字开头的元素是无效的 HTML。虽然大多数浏览器都会很好地呈现这个,但尝试使用 JavaScript 通过 ID 定位元素(如 Selenium WebDriver 所做的那样)完全有可能会失败。

于 2012-07-10T21:05:55.107 回答
0

您是否有理由使用 XPath 而不仅仅是通过 ID 进行选择?

driver.FindElement(By.Id("0"));

HTML id 在页面上应该是唯一的。

于 2012-07-10T15:26:29.263 回答
0

我通过使用鼠标操作解决了这个问题。谢谢大家的意见。

 Actions builder = new Actions(driver);
       IWebElement tagElement = driver.FindElement(By.XPath("//div[@id='0' and @class='MenuItem']"));
       //mouse hover on first item
       builder.MoveToElement(tagElement).Perform();
        //click on first item
       driver.FindElement(By.XPath("//div[@id='0' and @class='MenuItem']")).Click();
于 2012-07-13T19:11:34.853 回答