栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

selenium知识点案例

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

selenium知识点案例

selenium知识点案例补充

文章目录
  • selenium知识点案例补充
  • 豆瓣模拟登陆
    • 登录步骤分析
    • 模拟登陆实例展示
    • 豆瓣模拟登陆总结
      • 什么时候需要切换`iframe`?
      • 无特殊属性定位的处理方式
      • 待匹配属性值有空格的处理方式
  • 鼠标行为链


豆瓣模拟登陆 登录步骤分析
  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
# 
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()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/935056.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号