什么是浏览器句柄
` 句柄是浏览器页面的唯一识别符,当我们打开某个网页时进行点击操作,可能会开启一个全新的页面,例如点击百度首页的登录—>立即注册时就会开启一个新的页面,如果此时直接定位注册页面某个元素,元素定位失败的情况。
代码实现及其详解
场景:百度首页–登录–立即注册–输入账户–登录页面输入登录账户
from selenium import webdriver
class Test_Demo():
def setup(self):
self.driver=webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(3)
def teardown(self):
self.driver.quit()
class Test_selenium(Test_Demo):
def test_baidu(self):
self.driver.get('https://www.baidu.com')
# 打印浏览器句柄
print(self.driver.window_handles)
# 打印当前页面句柄
print(self.driver.current_window_handle)
#点击登录
self.driver.find_element_by_link_text('登录').click()
#点击注册
self.driver.find_element_by_link_text('立即注册').click()
#获取浏览器句柄windown(是一个列表)
windown=self.driver.window_handles
#跳转句柄
self.driver.switch_to.window(windown[-1])
#注册页面输入账户
self.driver.find_element_by_id('TANGRAM__PSP_4__userName').send_keys('')
#注册页面输入密码
self.driver.find_element_by_id('TANGRAM__PSP_4__phone').send_keys('')
#跳回之前句柄页面
self.driver.switch_to.window(windown[0])