2018-08-06

自动登录

会出现的问题:

找不到点击的地方,因为网页源代码本身没有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)

你可能感兴趣的:(2018-08-06)