python中使用selenium如何获取从当前页面打开的新页面

上一篇 / 下一篇  2013-09-28 20:23:44 / 个人分类:selenium与python

最近在研究python+selenium进行web自动化测试
目前发现一个问题,在python中使用selenium可以顺利在firefox中打开网站,但是从当前网站重新打开的链接页面却无法定位。
如下:
from selenium import webdriver
import time,os

driver = webdriver.Firefox()
url_path = "http://www.hao123.com"

driver.get(url_path)
driver.maximize_window()
driver.implicitly_wait(10)

#登陆163邮箱
driver.find_element_by_id("mailName").send_keys("xxxxxx")
driver.find_element_by_id("mailPwd").send_keys("xxxxxxxx")
driver.find_element_by_id("mailsubmit").click()

driver.implicitly_wait(20)

driver.find_element_by_id("h1MainTitle").click()
driver.close()
首先,通过webdriver在firefox中打开“hao123”,随后从该页面登陆163邮箱,问题是登陆邮箱成功后,却无法定位到163邮箱界面进行其他操作。每次都是返回到了hao123的页面中,问题应该是出在获取页面的句柄上,但是才初次研究selinium,因此还不知道如何解决。
哪位大侠能指导一下,感激不尽。

TAG:

引用 删除 lyy333   /   2016-07-18 13:59:11
原帖由ermine于2013-10-16 11:46:31发表
在driver.find_element_by_id("h1MainTitle").click()之前加上
driver.switch_to_window(dri.



我想请问定位到新打开的页面后,能返回此页面的url吗?
引用 删除 lyy333   /   2016-07-18 13:57:30
我想问定位到新打开的页面后,能返回此页面的url吗?
引用 删除 lyy333   /   2016-07-18 13:55:47
5
wuxi88的个人空间 引用 删除 wuxi88   /   2015-03-30 15:04:17
//得到当前窗口的句柄
        String currentWindow = driver.getWindowHandle();
        //得到所有窗口的句柄
        Set<String> handles = driver.getWindowHandles();
        Iterator<String> it = handles.iterator();
        while(it.hasNext()){
            if(currentWindow== it.next())  
                    continue;
            driver.switchTo().window(it.next());
           
        }
ermine的个人空间 引用 删除 ermine   /   2013-10-16 11:46:31
在driver.find_element_by_id("h1MainTitle").click()之前加上
driver.switch_to_window(driver.window_handles[-1])

或者先用driver.current_window_handle拿到开始的handle,然后遍历window_handles,如果不是开始的handle,再switch
 

评分:0

我来说两句

日历

« 2024-05-14  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 47023
  • 日志数: 4
  • 建立时间: 2013-08-21
  • 更新时间: 2013-09-28

RSS订阅

Open Toolbar