常用的API操作

目录

一.鼠标事件

二.键盘事件(必需结合send_keys一起使用)

三.下拉框选择

四.滚动条

五.ifram

六.多窗口切换

七.弹窗

八.选择框


一.鼠标事件

1.导包

# 导包
from selenium.webdriver import ActionChains

# 实例化一个鼠标对象
ActionChains(driver).方法名(元素).preform()

2.双击

ActionChains(driver).double_click(元素).perform()

3.悬停

 ActionChains(driver).move_to_element(元素).perform()

4.右击

ActionChains(driver).context_click(元素).perform()

5.按下鼠标左键

ActionChains(driver).click_and_hold(元素).perform()

6.拖动

ActionChains(driver).drag_and_drop(原始元素,目标元素).perform()

7.拖动到指定像素位置 (x轴和y轴以左上角的原点位置为(0,0)

 ActionChains(driver).drag_and_drop_by_offset(目标元素, x轴坐标, y轴坐标).perform()

二.键盘事件(必需结合send_keys一起使用)

1.导包及前提操作条件

#导包1
from selenium import webdriver

#导包2
from selenium.webdriver.common.keys import Keys

#实例化对象
driver = webdriver.Chrome()

#打开浏览器
driver.get('http://www.baidu.com')

#通过id定位输入内容
driver.find_element_by_id('id').send_keys('内容')

2.键入BACKPAC键

driver.find_element_by_id('kw').send_keys(Keys.BACK_SPACE)

3.键入tab键

driver.find_element_by_id('kw').send_keys(Keys.TAB)

4.键入回车键

driver.find_element_by_id('kw').send_keys(Keys.ENTER)

三.下拉框选择

1.导包

 from selenium.webdriver.support.select import Select

2.通过value值来选择下拉框

 Select(元素).select_by_value(value值)

3.通过索引来选择(索引从0开始)

Select(元素).select_by_index(索引值)  

4.通过文本定位

Select(元素).select_by_visible_text(文本值)

四.滚动条

在webdriver里面本身没有提供对滚动条的操作,但是提供了一个执行js脚本的方法
因此可以通过js脚本来执行滚动条上下滑动

1.准备js脚本(左右滑动改变x轴,上下滑动改变y轴)

window.scrollTo(x,y)

2.使用webdriver的execute_script(js脚本)的方法执行js脚本实现滚动条操作

driver.execute_script(js)

聚焦到某个元素位置:

1.定位需要聚焦的元素

ele = driver.find_element_by_id('元素')

2.准备聚焦元素的脚本

js = 'arguments[0].scrollIntoView();'

3.执行传入的元素和脚本

 driver.execute_script(js,ele)

五.ifram

iframe是前端常用的一个标签,用于HTML页面的嵌套
会导致嵌套的页面元素能定位,但是实际上元素不在本页面,想要定位到iframe里面的元素,需要进行页面的切换
怎么进行页面切换:

1.通过name或者id切换

driver.switch_to.frame(name值或者id值)

2.通过索引切换(索引从0开始)

driver.switch_to.frame(索引值)

3.通过元素定位

 driver.switch_to.frame(定位的元素)
退出嵌套页面:

1.退出所有的嵌套页面

driver.switch_to.default_content()

2.只退出一层嵌套

driver.switch_to.parent_frame()
什么时候去使用切换的方法
1.当你定位元素能够定位但是在selenium里面找不到元素的时候去判断是否因为 iframe嵌套引起
2.在F12 elements里面定位该元素,然后在下方绝对路径里面查看是否有 iframe frame
  存在则需要进行页面的切换才能操作
常见应用场景:
    1.登录
    2.富文本编辑框
    3.后台的菜单栏

六.多窗口切换

在超链接标签(a)里面存在 target=_blank 的时候点击会打开一个新的页面

方法1:

获取句柄

1.获取当前页面句柄:

driver.current_window_handle

2.获取所有句柄

 driver.window_handles 

切换窗口

driver.switch_to.window(句柄)

方法2:

1.通过js脚本移除target属性

js = 'document.getElementById("fw").removeAttribute("target")'

2.执行脚本

driver.execute_script(js)

3.移除target属性后就可以使用浏览器回退方式进行操作


七.弹窗

原生弹窗:

alert:只有一个确认按钮

confirm:有取消有确定按钮

prompt:有一个输入框,确定,取消

alert:

# 获取原生弹窗 
变量 = driver.switch_to.alert

#点击确定
变量.accept()

confirm:

#获取原生弹窗
变量 = driver.switch_to.alert

#点击确定
变量.accept()    

#点击取消 
变量.dismiss()    

priompt:

# 获取原生变量
变量 = driver.switch_to.alert

#输入内容    
变量.send_keys(内容) 

#点击确定
变量.accept()  

#点击取消   
变量.dismiss()

   

自定义弹窗:

自定义的弹窗没有提供的方法去去除,可以通过执行js脚本来去除自定义的弹窗

1.准备js脚本,把显示属性设置为空

js = 'document.getElementById("iframe_company_mini_div").style.display ="none"'

2.执行js脚本

driver.execute_script(js)


八.选择框

单选框: 在html代码里面 type是 radio 并且一组的单元 name属性值全部一样

语法:判断元素是否被选中

元素.is_selected()

多选框: 多选框是html代码里面 type属性是 checkbox,name属性相同

选中全部元素:

eles = driver.find_elements_by_name('checkbox')

 # 遍历全部选中
for ele in eles:
    if not ele.is_selected():
       ele.click()

只选择部分:

opinion=('value值1','value值2')

for 变量 in 元素:
    # 判断获取的属性是否存在选项中
    if 变量.get_attribute('value') in option:
        # 判断是否已经被选中
        if not 变量.is_selected():
            # 没有选中才进行点击选中
            ele.click()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值