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