selenium 常用API

目录

1.鼠标事件 

1.1 context_click() 鼠标右击

1.2  double_click()  双击

1.3 ​​​​​​​ move_to_element() 悬停(将鼠标移到某个元素上)

1.4 ​​​​​​​ click_and_hold() 按下鼠标左键在一个元素上

1.5  drag_and_drop()鼠标拖动

2.键盘事件

键盘的使用必须和 send_keys 结合起来

2.1 键盘写入tab键

2.2  键盘写入回车键(Enter)

2.3 键盘写入删除键(Backspace)

2.4 键盘写入空格键(Space)

2.5 键盘写入回退键(Esc)

2.6 键盘写入全选(Ctrl+A)

3.下拉框选择

通过Select定位

3.1 通过value值来选择下拉选项

3.2 通过索引值进行定位

3.3 通过文本值进行定位

4.滚动条处理

4.1 准备js脚本

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

4.3 聚焦到某个元素位置

5.iframe操作

5.1 通过iframe的name或者id值切换页面

5.2 通过iframe的id进行页面切换

5.3 通过元素定位来切换

5.4 退出嵌套页面

6.多窗口切换

6.1 获取窗口句柄

6.2 切换窗口

7.弹窗处理

7.1 通过js脚本移除target属性

7.2  原生弹窗

7.3 自定义的弹窗


先在PyCharm写入以下代码

# 导包
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.select import Select

driver = webdriver.Chrome()

driver.get("http://www.baidu.com")

1.鼠标事件 

1.1 context_click() 鼠标右击

#选择需要鼠标右击的目标元素 
right = driver.find_element_by_css_selector('a[title="自动化相关"]') 
 
#执行鼠标右击操作  
ActionChains(driver).context_click(right).perform()  

1.2 ​​​​​​​ double_click()  双击

# 定位到要双击的元素  
double_click = driver.find_element_by_id("kw")  

# 双击操作  
ActionChains(driver).double_click(double_click).perform()  

1.3 ​​​​​​​ move_to_element() 悬停(将鼠标移到某个元素上)

# 定位到要悬停的元素  
above = driver.find_element_by_link_text("设置")  

# 悬停操作  
ActionChains(driver).move_to_element(above).perform()  

1.4 ​​​​​​​ click_and_hold() 按下鼠标左键在一个元素上

#定位到鼠标按下左键的元素  
left=driver.find_element_by_xpath("设置")  

#对定位到的元素执行鼠标左键按下的操作  
ActionChains(driver).click_and_hold(left).perform() 

1.5  drag_and_drop()鼠标拖动

# 元素1
div1 = driver.find_element_by_id('div1')

# 元素2
div2 = driver.find_element_by_id('div2')

# 把元素1从一个位置,拖动到另外一个元素2的位置
ActionChains(driver).drag_and_drop(div1,div2).perform()

#指定坐标点的位置进行拖动
ActionChains(driver).drag_and_drop_by_offset(目标元素, x轴坐标, y轴坐标)

2.键盘事件

键盘的使用必须和 send_keys 结合起来

2.1 键盘写入tab键

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

2.2  键盘写入回车键(Enter)

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

2.3 键盘写入删除键(Backspace)

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

2.4 键盘写入空格键(Space)

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

2.5 键盘写入回退键(Esc)

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

2.6 键盘写入全选(Ctrl+A)

driver.find_element_by_id('kw').send_keys(Keys.CONTROL,'a')

3.下拉框选择

通过Select定位

from selenium import webdriver
from selenium.webdriver.support.select import Select

driver = webdriver.Chrome()
driver.get('http://www.baidu.com')

ele = driver.find_element_by_id('select')

select = Select(ele)

3.1 通过value值来选择下拉选项

Select(元素).select_by_value(value值)


select.select_by_value("gz")

3.2 通过索引值进行定位

Select(元素).select_by_index(索引值)     # 索引值从0开始


select.select_by_index(3)

3.3 通过文本值进行定位

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


select.select_by_visible_text('上海')

4.滚动条处理

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

4.1 准备js脚本

js = 'window.scrollTo(0,1000)'

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

driver.execute_script(js)

4.3 聚焦到某个元素位置

# 1.定位需要聚焦的元素
ele = driver.find_element_by_id('alerta')

# 2.聚焦元素的js脚本
js = 'arguments[0].scrollIntoView();'

# 3.执行脚本传入元素
driver.execute_script(js,ele)

5.iframe操作

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

5.1 通过iframe的name或者id值切换页面

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

5.2 通过iframe的id进行页面切换

driver.switch_to.frame(索引值)     # 索引从0开始

5.3 通过元素定位来切换

driver.switch_to.frame(定位的元素)

5.4 退出嵌套页面

# 1.退出所有的嵌套页面
driver.switch_to.default_content()

# 2.只退出一层嵌套
driver.switch_to.parent_frame()

6.多窗口切换

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

6.1 获取窗口句柄

driver.current_window_handle  #获取当前页面(原页面)的句柄

driver.window_handles         #获取所有页面的句柄,返回一个列表

6.2 切换窗口

driver.switch_to.window(句柄)

7.弹窗处理

7.1 通过js脚本移除target属性

# 1.准备js脚本
js = 'document.getElementById("fw").removeAttribute("target")'

# 2.执行js脚本去掉target属性
driver.execute_script(js)

driver.find_element_by_id('fw').click()

7.2  原生弹窗

alert:只有一个确定按钮
confirm:有一个确定按钮,一个取消按钮
prompt:有一个输入框,一个确定按钮,一个取消按钮
'''
alert:
        变量 = driver.switch_to.alert
        变量.accept()     点击确定

    confirm:
        变量 = driver.switch_to.alert
        变量.accept()     点击确定
        变量.dismiss()    点击取消

    prompt:
        变量 = driver.switch_to.alert
        变量.accept()     点击确定
        变量.dismiss()    点击取消
        变量.send_keys(内容)    输入内容

'''

7.3 自定义的弹窗

自定义的弹窗没有提供的方法去去除,可以通过执行js脚本来去除自定义的弹窗
# 1.js脚本,把显示属性设置为空
js = 'document.getElementById("iframe_company_mini_div").style.display ="none"'

# 2.执行js脚本
driver.execute_script(js)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值