文章目录
- selenium知识点案例补充
- 豆瓣模拟登陆
- 登录步骤分析
- 模拟登陆实例展示
- 豆瓣模拟登陆总结
- 什么时候需要切换`iframe`?
- 无特殊属性定位的处理方式
- 待匹配属性值有空格的处理方式
- 鼠标行为链
豆瓣模拟登陆 登录步骤分析
- 加载驱动
- 打开网页
- 切换登录模式
3.1 切换iframe
3.1.1 定位iframe 位置
3.1.2 切换
3.2 切换密码登录
3.2.1 定位登录密码
3.2.2 进行匹配(模糊匹配或者xpath绝对索引)
3.2.3 点击切换
3.3 输入账号密码
3.3.1 找到账号输入框
3.3.2 输入账号xxxxxxx
3.3.3 找到密码输入框
3.3.4 输入密码xxxxxx - 定位登录按钮
4.1 找到登录按钮位置(class_name进行索引)
4.2 点击登录
from selenium import webdriver
import time
# 1、加载驱动
driver = webdriver.Chrome()
# 2、打开网页
driver.get("https://www.douban.com/")
time.sleep(1)
# 3、切换登录模式
# Message: no such element: Unable to locate element: {"method":"css selector","selector":".account-tab-account on"}
# 3.1 切换iframe
# 找到ifram
iframe = driver.find_element_by_xpath('//*[@id="anony-reg-new"]/div/div[1]/iframe')
# 切换
driver.switch_to.frame(iframe)
# 3.2 定位(密码登录)
# 通过find_element_by_class_name去找时 里面最好不要有空格
"""
如果存在空格 则尝试用长一点部分的内容去匹配
li_tag = driver.find_element_by_class_name("account-tab-account")
通过xpath绝对索引也可以,且快捷
li_tag = driver.find_element_by_xpath('/html/body/div[1]/div[1]/ul[1]/li[2]')
li_tag = driver.find_element_by_xpath('//li[contains(@class,"account-tab-account")]')
以上三种都可以
"""
# 补充模糊匹配
li_tag = driver.find_element_by_xpath('//li[contains(@class,"account-tab-account")]')
li_tag.click()
# 3.3输入账号密码
# 找到账号输入框
input_username = driver.find_element_by_id('username')
# 输入
input_username.send_keys('xxxxxxx')
# 找到密码输入框
input_pwd = driver.find_element_by_id('password')
# 输入
input_pwd.send_keys('xxxxxx')
time.sleep(1)
# 3.4点击登录按钮
# 定位登录按钮
btn = driver.find_element_by_class_name('btn-account')
# 点击
btn.click()
豆瓣模拟登陆总结
什么时候需要切换iframe?
1、iframe里面有一个链接
2、并且通过该链接打开的网页里面有你要操作的元素
3、就需要切换 再进行后续操作
1、copy XPath(不推荐)
2、一直往上找 多找几层限制
模糊匹配 contains:
li_tag=driver.find_element_by_xpath('//li[contains(@class,"account‐tab‐account")]')
待匹配属性值有空格的处理方式
1、先尝试用长的那部分
2、如果说长的短的都不行 一直往上找 多找几层限制
xpath: //ul[@class="tab‐start"]/li[@class="account‐tab‐ account on"]鼠标行为链
简单的搜索行为
from selenium import webdriver import time from selenium.webdriver import ActionChains #from selenium.webdriver.common.action_chains import ActionChains # 1、加载驱动 driver = webdriver.Chrome() # 2、进入网页 driver.get("https:www.baidu.com/") time.sleep(1) # # 输入搜索内容 # driver.find_element_by_id('kw').send_keys('python') # # 点击搜索按钮 # driver.find_element_by_id('su').click() # 鼠标行为链 action = ActionChains(driver) # print(type(action)) # 定位搜索框 input_tag = driver.find_element_by_id('kw') action.send_keys_to_element(input_tag, 'python') # 定位按钮 click_btn = driver.find_element_by_id('su') # action.click(click_btn) action.send_keys_to_element(click_btn).click() # 提交行为链 action.perform()



