selenium所有基础命令

from selenium import webdriver
driver = webdriver.Chrome() #获取浏览器驱动

driver = webdriver.Firefox() #获取火狐浏览器 先要配置驱动

driver = webdriver.Ie() #获取Ie浏览器

print( driver.name ) #chrome 浏览器的名字
driver.maximize_window() #最大化窗口

driver.minimize_window() #最小化窗口

url = “https://liushilive.gitee.io/html_example/index.html”
driver.get(url) #打开指定页面
print( driver.title ) #当前页面标题
print( driver.current_url ) #当前页面网址
#获取页面源码
with open(“1.html”,“w”,encoding=“utf-8”) as f:
f.write( driver.page_source )
#截取当前屏幕
driver.save_screenshot(“1.png”)
#刷新
driver.refresh()
#后退
driver.back()
#前进
driver.forward()
#关闭当前页
driver.close()
#退出浏览器
driver.quit()

#查找元素,有八种方法

#如果定位失败,则会崩溃
#1.通过id属性来定位. 优先选择
ele = driver.find_element_by_id(“uid”)
#2.通过name属性定位元素
ele = driver.find_element_by_name(“user”)
#3.通过xpath进行定位
ele = driver.find_element_by_xpath("//input[@id=‘uid’]")
#4.通过链接(a标签)文本进行定位
ele = driver.find_element_by_link_text(“返回主页”)
ele.click() #点击元素
#5.通过部分链接文本进行定位
ele = driver.find_element_by_partial_link_text(“主页”)
ele.click()
#6.通过class 类名进行定位. 不推荐.因为容易定位到多个元素

如果定位到多个元素,那么会取第一个

ele = driver.find_element_by_class_name(“form-control”)
#7.通过标签名定位. 容易定位到多个,默认取第一个
ele = driver.find_element_by_tag_name(“input”)
#8.通过css选择器定位
ele = driver.find_element_by_css_selector("#uid")
#输入内容到输入框
ele.send_keys(“hello”)

#定位多个元素,就会返回一个列表.
eles = driver.find_elements_by_tag_name(“input”)
print( len(eles) ) #页面上所有input标签的个数
eles[0].send_keys(“world”) #选则第0个元素,进行操作

#对元素的操作
ele = driver.find_element_by_id(“uid”)
ele.click() #点击元素
print( ele.tag_name ) #元素标签名
print( ele.get_attribute(“placeholder”))#获取属性的值
print( ele.is_displayed() ) #元素是否可见
print( ele.is_enabled() ) #元素是否可用(编辑)
print( ele.is_selected() ) #元素是否被选中
print( ele.size ) #元素的尺寸. 单位为像素px
print( ele.location) #元素的位置
print( ele.location_once_scrolled_into_view ) #元素可见位置

ele = driver.find_element_by_xpath("//label[@for=‘uid’]")
print( ele.text ) #元素的文本. 只能获取双标签中间的内容

#向元素输入内容. 追加
ele.send_keys(“你好”)
ele.send_keys(“你好2”)
ele.send_keys(123456)
#清空输入框
ele.clear()

#输入按键
from selenium.webdriver.common.keys import Keys
#先按两下左键,再按一下删除键
ele.send_keys(Keys.LEFT*2,Keys.BACK_SPACE)

#下拉框
ele = driver.find_element_by_id(“s1Id”)
ele.click()
ele2 = driver.find_element_by_xpath("//option[@value=‘sz’]")
ele2.click()
ele.click() #再次点击下拉框,下拉列表才会消失

#做个下拉框对象,来选择
from selenium.webdriver.support.select import Select
select = Select(ele) #实例化Select类,得到对象
select.select_by_index(2) #通过下标选择
select.select_by_value(“sz”) #通过option的value值选择
select.select_by_visible_text(“上海”) #可见文本选择
print( select.options ) #选项列表
print( select.is_multiple ) #是否支持多选. 不是返回None

#多选下拉框
ele = driver.find_element_by_id(“s3Id”)
select = Select(ele) #做成对象
print( select.is_multiple ) #判断是否支持多选
select.select_by_index(0) #选择
select.select_by_index(1) #选择
select.select_by_index(2) #选择
select.select_by_index(3) #选择
print( select.all_selected_options) #已经被选中的选项
select.deselect_by_index(0) #取消选择
select.deselect_by_index(1) #取消选择
select.deselect_by_index(2) #取消选择
select.deselect_by_index(3) #取消选择
select.deselect_all() #取消所有选择

#如果页面上出现了警告框,则必须优先处理.因为任何元素都无法操作了
driver.find_element_by_id(“b1”).click()
#切到警告框
alert = driver.switch_to.alert
#警告框文本
print( alert.text )
#点击确定按钮

alert.accept()

#点击了取消
alert.dismiss()

#带输入框的警告框
driver.find_element_by_id(“b2”).click()
alert = driver.switch_to.alert
alert.send_keys(“张三”) #输入内容
alert.accept()

import time
#模态框. 属于页面.可以使用定位
driver.find_element_by_id(“b3”).click()
time.sleep(0.5) #因为动画需要时间,所以要加延迟
driver.find_element_by_id(“basic-addon1”).send_keys(“666”)
driver.find_element_by_id(“b5”).click()

#双击
div = driver.find_element_by_id(“dblclick”)

动作链

ac = webdriver.ActionChains(driver)
#双击元素
ac.double_click(div)
#执行动作链
ac.perform()

#悬浮
ele = driver.find_element_by_link_text(“分 类”)
webdriver.ActionChains(driver).move_to_element(ele).perform()
ele = driver.find_element_by_link_text(“编程语言”)
webdriver.ActionChains(driver).move_to_element(ele).perform()
#通过偏移量来做悬浮
webdriver.ActionChains(driver).move_by_offset(130,44).perform()

#自动化无法处理验证码
#1.让开发把验证码关闭
#2.让开发给一个万能验证码

#拖动
#滑块
ele = driver.find_element_by_class_name(“handler”)
#滑动区域
ele2 = driver.find_element_by_class_name(“drag_text”)
#滑动宽度
width = ele2.size[“width”]
#一次滑到底
#webdriver.ActionChains(driver).drag_and_drop_by_offset(ele,width,0).perform()

#模拟人为操作
#按住
webdriver.ActionChains(driver).click_and_hold(ele).perform()
#一次拖动1/20
for i in range(20):
#移动
webdriver.ActionChains(driver).move_by_offset(width/20,0).perform()
time.sleep(0.1)
#放开
webdriver.ActionChains(driver).release().perform()

#拖拽方块
ele1 = driver.find_element_by_xpath("//[@data-dad-id=‘1’]")
ele2 = driver.find_element_by_xpath("//
[@data-dad-id=‘3’]")
webdriver.ActionChains(driver).drag_and_drop(ele1,ele2).perform()

#执行js
scroll_to_top = “window.scrollTo(0,0);” #滚动头
scroll_to_bottom = “window.scrollTo(0,document.body.scrollHeight);” #滚到底
scroll_to_view = “arguments[0].scrollIntoView()” #滚到元素的位置
#执行js脚本

driver.execute_script( scroll_to_bottom )

ele = driver.find_element_by_id(“uid”)
driver.execute_script( scroll_to_view,ele ) #执行脚本,并传入ele作为参数

#cookie 饼干
#浏览器中,网页使用cookie记录数据
#添加
driver.add_cookie({“name”:“zhangsan”,“value”:“1000”})
driver.add_cookie({“name”:“lisi”,“value”:“2000”})
#获取所有
print( driver.get_cookies() )
#获取一个
print( driver.get_cookie(“zhangsan”) )
#删除一个
driver.delete_cookie(“zhangsan”)
#删除所有
driver.delete_all_cookies()

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

嘿爱多

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

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

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

打赏作者

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

抵扣说明:

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

余额充值