2013-06-12 94 views
0

在我的应用程序中,注销是一个双向过程。当您点击主屏幕上的注销链接时,会弹出一个确认注销的弹出窗口。弹出注销按钮

现在,弹出窗口中有两个按钮('注销'和'取消')。问题是我无法点击其中任何一个。

使用Firebug控制台,我确认我使用的XPath是正确的。但是当在webdriver中使用相同的Xpath时,它无法找到对象。

上弹出按钮的Xpath:// DIV [3]/DIV/DIV/DIV [2]/DIV /一个/跨度

代码而我试图:

IWebElement LogoutButton = WebDriver.FindElement(By.XPath("//div[3]/div/div/div[2]/div/a/span")); 
     LogoutButton.Click(); 

有什么具体的方法可以在这里使用?请告诉我。

欢呼

编辑*

<div id="ext-comp-1084" class="x-window x-layer x-window-default x-closable x-window-closable x-window-default-closable x-popup" tabindex="-1" style="opacity: 1; width: 250px; height: 145px; right: auto; left: 755px; top: 147px; z-index: 19000;"> 
<div id="ext-comp-1084_header" class="x-window-header ext-header ext-header-horizontal x-docked x-unselectable x-window-header-default x-horizontal x-window-header-horizontal x-window-header-default-horizontal x-top x-window-header-top x-window-header-default-top x-docked-top x-window-header-docked-top x-window-header-default-docked-top" style="width: 250px; right: auto; left: 0px; top: 0px;"> 
<div id="ext-comp-1084-body" class="x-window-body x-window-body-default x-closable x-window-body-closable x-window-body-default-closable x-window-body-default x-window-body-default-closable" style="width: 250px; left: 0px; top: 52px; height: 49px;"> 
<div id="toolbar-1086" class="x-toolbar x-docked x-toolbar-default x-docked-bottom x-toolbar-docked-bottom x-toolbar-default-docked-bottom x-box-layout-ct" style="width: 250px; right: auto; left: 0px; top: 101px;"> 
<div id="toolbar-1086-innerCt" class="x-box-inner " role="presentation" style="width: 250px; height: 44px;"> 
<div id="toolbar-1086-targetEl" class="x-box-target" style="width: 250px;"> 
<div id="tbspacer-1087" class="x-toolbar-spacer x-box-item x-toolbar-item x-toolbar-spacer-default" style="right: auto; left: 0px; margin: 0px; width: 50px; top: 22px;"></div> 
<div id="button-1088" class="x-btn green x-exclude x-unselectable x-box-item x-toolbar-item x-btn-default-toolbar-small x-noicon x-btn-noicon x-btn-default-toolbar-small-noicon" style="border-width: 1px; width: 100px; right: auto; left: 50px; margin: 0px; top: 8px;"> 
<div id="button-1088-btnWrap" class="x-btn-wrap" unselectable="on"> 
<a id="button-1088-btnEl" class="x-btn-button" tabindex="0" unselectable="on" hidefocus="on" role="button"> 
<span id="button-1088-btnInnerEl" class="x-btn-inner x-btn-inner-center" unselectable="on">Logout</span> 
<span id="button-1088-btnIconEl" class="x-btn-icon-el " style="" unselectable="on" role="img"></span> 
</a> 
</div> 
</div> 
<div id="button-1089" class="x-btn gray x-exclude x-unselectable x-box-item x-toolbar-item x-btn-default-toolbar-small x-noicon x-btn-noicon x-btn-default-toolbar-small-noicon" style="border-width: 1px; width: 80px; right: auto; left: 160px; margin: 0px; top: 8px;"> 
<div id="button-1089-btnWrap" class="x-btn-wrap" unselectable="on"> 
<a id="button-1089-btnEl" class="x-btn-button" tabindex="0" unselectable="on" hidefocus="on" role="button"> 
<span id="button-1089-btnInnerEl" class="x-btn-inner x-btn-inner-center" unselectable="on">Cancel</span> 
<span id="button-1089-btnIconEl" class="x-btn-icon-el " style="" unselectable="on" role="img"></span> 
</a> 
</div> 
</div> 
</div> 
</div> 
</div> 
</div> 
+0

您是否尝试过等待元素,无论是通过隐式还是显式等待? –

+0

发表HTML代码...是的,我已经尝试了2000毫秒显式等待...此外,而不是Click(),我试过使用ClickWhenVisible(); – user2434600

+0

为了清楚起见,尝试通过By.linkText(“Logout”)或By.xpath(“// a [text()='Logout']”)'来查找元素。你是否能够以任何方式找到元素,或根本没有?一如既往,你有没有尝试在另一个浏览器?每次都会一致地失败吗?与往常一样,2秒可能不够... –

回答

0

1)首先使用下面的代码

String mainWindow = driver.getWindowHandle(); 

2)//代码,点击退出链接保存主窗口的实例在主屏幕上

3)然后切换控制的webdriver弹出使用以下代码

for(String childWindow : driver.getWindowHandles()){ 
     driver.switchTo().window(childWindow); 
    } 

4)//代码点击弹出,(“退出”和“取消”)。