在本例中所有用到的新方法:
名称 |
作用 |
current_window_handle |
获得当前窗口句柄 |
window_handles |
返回的所有窗口的句柄到当前会话 |
switch_to_window() |
切换窗口 |
切换窗口
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(3)
url = 'http://www.baidu.com'
driver.get(url)
#获致当前页面的句柄
search_hand= driver.current_window_handle
print(search_hand)
driver.find_element_by_link_text('登录').click()
time.sleep(2)
driver.find_element_by_link_text('立即注册').click()
all_hands= driver.window_handles
#进入注册页面
for hand in all_hands:
if hand != search_hand:
driver.switch_to.window(hand)
driver.find_element_by_id('TANGRAM__PSP_3__userName').send_keys('12333')
time.sleep(1)
driver.find_element_by_id('TANGRAM__PSP_3__phone').send_keys('1233390000')
for hand in all_hands:
if hand == search_hand:
driver.switch_to.window(hand)
driver.find_element_by_id('kw').send_keys('python')
driver.find_element_by_class_name('bg_s_btn').click()
driver.quit()
处理弹窗
名称 |
作用 |
text |
返回 alert/confirm/prompt 中的文字信息。 |
accept |
点击确认按钮。 |
dismiss |
点击取消按钮,如果有的话。 |
from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Firefox()
url = 'http://www.baidu.com'
driver.get(url)
driver.implicitly_wait(2)
#鼠标悬停
link = driver.find_element_by_link_text('设置')
ActionChains(driver).move_to_element(link).perform()
time.sleep(1)
driver.find_element_by_class_name('setpref').click()
time.sleep(2)
driver.find_element_by_class_name('prefpanelgo').click()
time.sleep(2)
#接收弹窗
driver.switch_to.alert.accept()
driver.quit()
print('执行完成')