selenium知识点案例

selenium知识点案例补充



豆瓣模拟登陆

登录步骤分析

  1. 加载驱动
  2. 打开网页
  3. 切换登录模式
    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. 定位登录按钮
    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
# <class 'selenium.webdriver.common.action_chains.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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猩猩文学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值