2011-03-28 75 views
2

我无法单击或与某些页面元素进行交互。它们看起来像普通的DOM对象。只是这里的按钮是一个何时以及如何使用webDriver(Selenium 2)中的switchTo()方法来处理窗口/弹出

<div style="clear: both; text-align: right"> 
<img id="nextstep" class="nextbtn" height="21" alt="" src="/edit/images/author/next.png"> 
</div> 

代码点击一个按钮“上传文件”另一弹出窗口打开后。我的任务是在弹出窗口上传文件并回到原始窗口。我会尽力解释

我开始为

www.test.com一个的webdriver(< - 例如由名)

我登录

点击上传文件按钮

此后点击我们的网站重定向到www.foo.com而不是上述我正在使用早先创建的相同的驱动程序,我尝试与帖子上传页面上的按钮进行交互

button.click()

它从来没有找到这些按钮,但它们在萤火虫中,并显示正常。

+0

只要你使用webdriver打开的窗口,你不需要切换。你能发布一个不起作用的代码片段吗? – 2011-04-12 09:30:40

+0

我跟踪窗口列表(通过句柄字符串),当我使用switchTo()返回到原始窗口时,我有时也使用JavaScript exectutor(在WebDriver中)获取窗口的焦点并将它放在前面(如果switchTo不能这样做)。 – djangofan 2013-02-20 18:49:44

回答

2

您可能会尝试在重定向后再次切换到窗口。

保存你的窗口句柄:

String myWindowHandle = driver.getWindowHandle(); 

重定向到你想要的网页,然后使用SWITCHTO的窗口句柄调用:

driver.switchTo().window(myWindowHandle); 

您的网页是否包含任何框架?在重定向之后,您可能还没有位于正确的框架中。

+0

这会在.Net版本中工作吗?我试图让这个工作,但还没有找到一个很好的方式来捕捉标题呢。也许这是事实,新的Windows标题是_blank ... – MichaelF 2011-10-05 12:40:02

+0

@chaosr:你的代码是正确的。但我认为它需要切换到defaultContent之前myWindowHandle – 2012-10-03 10:30:48

+0

@chaosr你可以让我知道如何打开另一个选项卡上的链接在同一浏览器,而不是打开一个新的窗口? – SelenyanC2 2015-06-14 04:39:40

相关问题