从WebDriver(从C#代码)在ExtJS中查找元素

从WebDriver(从C#代码)在ExtJS中查找元素,extjs,selenium-webdriver,Extjs,Selenium Webdriver,下面是我的网页的Extjs代码 <div id="dataViewPanel" class="x-panel"> <div id="ext-gen76" class="x-panel-header x-unselectable" style="-moz-user-select: none;"> <div id="ext-gen168" class="x-tool x-tool-refresh "> </div>

下面是我的网页的Extjs代码

<div id="dataViewPanel" class="x-panel">
      <div id="ext-gen76" class="x-panel-header x-unselectable" style="-moz-user-select: none;">
           <div id="ext-gen168" class="x-tool x-tool-refresh "> </div>
           <div id="ext-gen164" class="x-tool x-tool-add " style="position: relative;">
           <div id="ext-gen189" class=""></div>
       </div>
    <div id="ext-gen160" class="x-tool x-tool-edit x-item-disabled " style="position: relative;">
           <div id="ext-gen188" class=""></div>
       </div>
由于我不熟悉在Web驱动程序中处理ext.js对象,因此无法使用class=“x-tool x-tool-add”找到元素,也无法单击该元素


任何人都可以帮我解决这个问题。

这与您使用的JavaScript框架无关。最后,您将使用自动化框架处理的所有内容都是HTML标记及其属性。因此,我觉得您在web驱动程序中提到的类名中可能存在拼写、空格或打字错误。我尝试了以下代码:IEdriver.FindElement(By.Id(“dataViewPanel”)).FindElement(By.CssSelector(“.x-panel-header.x-unselectable”)).FindElement(By.CssSelector(“.x-tool.x-tool-add”)。单击();结果是找不到元素
IEdriver.FindElement(By.CssSelector(“#dataViewPanel.x-panel-header.x-tool-add“)
是导航到元素的更简单的方法。选择器是正确的-如果这不起作用,那么在本例中一定存在其他一些不明显的问题。也许您的代码在iframe中,您需要selenium先导航到此iframe?(我只是猜测你对窗框的使用)
window.frames['abFrame'].contentDocument.getElementById('dataViewPanel').childNodes[0].childNodes[1]