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

#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)
就是总是对最新弹出的窗口进行定位

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值