# 自动登录百度账号
from selenium import webdriver
import time
browser = webdriver.Chrome()
# 设置隐式等待 find等待查询,每半秒执行查询一次最长10秒
browser.implicitly_wait(10)
browser.get("http://www.baidu.com")
browser.maximize_window()
# 获取当前窗体句柄
current_handle = browser.current_window_handle
# **********打开新建页面后******************
browser.find_element_by_link_text("登录").click()
# **********打开新建页面后******************
# 获取现在全部窗体句柄
all_handle = browser.window_handles
# 进行切换后的窗体注册,多个窗体需要更改if条件
for handle in all_handle:
if handle != current_handle:
browser.switch_to.frame(handle)
time.sleep(1)
time.sleep(5)
browser.find_element_by_id("TANGRAM__PSP_10__footerULoginBtn").click()
# 填写账号 密码
browser.find_element_by_css_selector("#TANGRAM__PSP_10__userName").send_keys("未注册")
browser.find_element_by_id("TANGRAM__PSP_10__password").send_keys(123456789)
time.sleep(5)
browser.find_element_by_css_selector("#TANGRAM__PSP_10__submit").click()
time.sleep(5)
browser.quit()
这个是自动登录百度账号的代码,相对于上一个改进了窗体切换。
这个只适合打开两个的页面的情况,有时候有多个页面还没有测试,有需要的朋友可以试试每打开一个页面保存当前的句柄,在注册窗口的时候可以排除掉这些已经出现的就好了,这样也方便后面的窗体再注册回去。
至于程序要不要睡觉(sleep)自己决定
账号browser.find_element_by_css_selector("#TANGRAM__PSP_10__userName").send_keys(“未注册”)
和browser.find_element_by_id(“TANGRAM__PSP_10__password”).send_keys(123456789)表达的是一个意思都是窗体的id号只是一个用css_selector加了# 。
by Dopamine