在使用pycharm运行代码时,如果出现无法识别弹框中的部分元素,可能是因为,获取元素的速度太快,页面尚未加载出来,就已经完成了获取元素事件,导致检索不到目标元素。
#coding:utf-8
from selenium import webdriver
import time as t
driver=webdriver.Firefox()
driver.maximize_window()
driver.get('http://www.baidu.com')
driver.implicitly_wait(30)#设置隐式等待,确保弹出需要的页面,再获取元素。
t.sleep(3)
driver.find_element_by_id('u1').find_element_by_class_name('lb').click()
#获取当前窗口的句柄
nowHandle=driver.current_window_handle
driver.find_element_by_css_selector('.pass-reglink').click()
#driver.find_element_by_id('wrapper').find_element_by_class_name("pass-reglink").click()
#获取所有窗口的句柄
handles=driver.window_handles
for handle in handles:
if handle!=nowHandle:
driver.switch_to_window(handle)
driver.switch_to_window(handle)
print u'我跳转到了注册页面'
driver.find_element_by_id('TANGRAM__PSP_3__userName').send_keys(u'输入注册账号')
t.sleep(5)
driver.close()
driver.switch_to_window(nowHandle)
print u'我回到了登录页面'
driver.find_element_by_id('TANGRAM__PSP_10__userName').send_keys(u'输入登录账号')
t.sleep(5)
driver.quit()