自动登录
会出现的问题:
找不到点击的地方,因为网页源代码本身没有Frame,所以改用active_element
alert ——返回浏览器的Alert对象,可对浏览器alert、confirm、prompt框操作
default_content() ——切到主文档
frame(frame_reference) ——切到某个frame
parent_frame() ——切到父frame,这个方法也不常被人所知,但有多层frame的时候很有用,不过这里要提一句,一般这种嵌套多层的frame都是有问题的,会影响到性能,可以提给开发,让其改进
window(window_name) ——切到某个浏览器窗口
active_element ——返回当前焦点的WebElement对象
1、点击前要做的事情
# 定位到登录所在的frame
driver.switch_to.frame("login_frame")
2、此次的登录代码
# 获取浏览器驱动
driver = webdriver.Chrome()
# 浏览器窗口最大化
driver.maximize_window()
# 浏览器地址定向为登陆页面
driver.get("https://passport.某.cn/")
timeout=10
time.sleep(2)
# 账号输入框输入已知账号
driver.find_element_by_xpath("""//*[@id="_j_login_form"]/div[1]/input""").click()
driver.switch_to.active_element.send_keys(user)
# 密码框输入已知密码
driver.find_element_by_xpath("""//*[@id="_j_login_form"]/div[2]/input""").click()
driver.switch_to.active_element.send_keys(pw)
# 自动点击登陆按钮
driver.find_element_by_xpath("""//*[@id="_j_login_form"]/div[5]/button""").click()
time.sleep(0.1)
3、用find_element_by_xpath准没错
4、还是搞不懂漂亮汤水里的find() & find_all()
5、总结:
(1)看文档(漂亮汤水)
(2)看文档(Selenium)
(3)看文档(HTTP)
网友评论