您的位置:首页 > 编程语言 > Python开发

Python中在跳转页面时,在新的页面就不能定位到元素了Unable to locate element

2017-09-26 10:50 489 查看
#coding=utf-8

from selenium import webdriver

import time

keywords='公务员'

keywords=keywords.decode('utf-8')

driver=webdriver.Firefox()

driver.get('http://www.baidu.com')

driver.find_element_by_id('kw').send_keys(keywords)

driver.find_element_by_id('su').click()

driver.find_element_by_xpath('//*[@id="3001"]/div[1]').click() #对新页面的第一个字段进行点击

可是报错:不能定位到新页面上的元素信息。到网上查了一下,发现当有新页面出来时,需要实现对新窗口句柄的捕捉

于是修改如下:

#coding=utf-8

from selenium import webdriver

import time

keywords='公务员'

keywords=keywords.decode('utf-8')

driver=webdriver.Firefox()

driver.get('http://www.baidu.com')

driver.find_element_by_id('kw').send_keys(keywords)

driver.find_element_by_id('su').click()

time.sleep(3)

driver.switch_to_window(driver.window_handles[0]) #实现对新窗口句柄的捕捉

driver.find_element_by_xpath('//*[@id="3001"]/div[1]').click()

到网上查了一下,发现对新窗口的定位有两种方法:

第一种(就是上面那种):driver.switch_to_window(driver.window_handles[0])  这里的0就是新弹出的第一个窗口,如果要定位第二个窗口就用1,以此类推

第二种:for handle in driver.window_handles:

                      driver.switch_to_window(handle)

就是总是对最新弹出的窗口进行定位
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐