selenium 关于多窗口问题求助!
情景:浏览器打开2个窗口,把焦点移动到第2个窗口,在第2个窗口操作完后,把焦点移动到第一个窗口同时关闭第2个窗口。怎么实现:把焦点移动到第一个窗口同时关闭第2个窗口 webElement = driver.FindElement(By.XPath("/html/body/div/div/div/div/div/div/div/div/span/ul/li[" + i + "]/dl/dt/a"));
webElement.Click();//弹出另外一个页面
ReadOnlyCollection<string> handles = driver.WindowHandles;//获取当前打开的窗口数
driver.SwitchTo().Window(handles);//把焦点定位到第2个窗口
wait.Until(dr2 => dr2.FindElement(By.CssSelector("a.d1")));
webElement = driver.FindElement(By.CssSelector("a.d1"));
现在我在第2个窗口找到了找到了这个元素后,要关闭这个窗口,返回第一个页面进行操作。怎么实现? 本帖最后由 WANDY 于 2012-5-28 16:09 编辑
driver.close()##可以关闭当前窗口。注意是当前
然后,使用Switchto().window 移动driver到第一个窗体。
driver.SwitchTo().Window(handles);##??? 这里不确定是0具体的请自行测试。
Python的代码:
##Click open new Browser Window
browser.switch_to_window(browser.window_handles[-1])
## browser 移动至list browser.window_handles的最后一个元素
## 新的browser往往在后面添加,所以,最后一个即最新Browser.
browser.close()
## 执行Close()指令
browser.switch_to_window(browser.window_handles[-1])
## browser 移动至最后一个, 因为最新的窗体已经关闭,所以browser移动的是之前已经打开的窗体。 如果你是在一个主页面上点击弹出一个页面 在弹出页面操作完之后返回到主页面的话 可以试试
driver.switchTo().window(driver.getWindowHandle()); 如果你是在一个主页面上点击弹出一个页面 在弹出页面操作完之后返回到主页面的话 可以试试
driver.switchTo().window(driver.getWindowHandle());
页:
[1]