selenium之常用模块函数总结

WebDriver 提供的八种定位方法:

find_element_by_id()

find_element_by_name()

find_element_by_class_name()

find_element_by_tag_name()

find_element_by_link_text()

find_element_by_partial_link_text()

find_element_by_xpath()

find_element_by_css_selector()
 

 

WebDriver API

浏览器最大化:
maximize_window()

设置浏览器宽、高:
set_window_size(480, 800)

控制浏览器后退,前进,刷新:
back()
forward()
refresh()
 

WebElement接口常用方法:

clear 清除元素的内容

send_keys 在元素上模拟按键输入

click 单击元素

submit 提交表单

size 返回元素的尺寸

text 获取元素的文本

get_attribute(name) 获得属性值

is_displayed() 设置该元素是否用户可见

  ActionChains 类鼠标操作方法:

 

在WebDriver中,将关于鼠标操作的方法封装在ActionChains类中来使用:
  perform() 执行所有ActionChains中存储的行为
  context_click()  右击
  double_click()   双击
  drag_and_drop()  拖动
  move_to_element()  鼠标悬停在一个元素上
  click_and_hold()   按下鼠标左键在一个元素上

鼠标右击操作
对于ActionChains类所提供的鼠标方法与前面学过的click()方法的用法有所不同。
鼠标操作步骤:
from selenium.webdriver import ActionChains
导入提供鼠标操作的ActionChains类。
ActionChains(driver)
调用ActionChains()类,将浏览器驱动driver做为参数传入。
context_click(right_click)
context_click()方法用于模拟鼠标右键操作,在调用时需要指定元素定位。
perform()
执行所有ActionChains中存储的行为,可以理解成是对整个操作的提交动作。


drag_and_drop() 拖动


#引入ActionChains类

from selenium.webdriver.common.action_chains import ActionChains ...

#定位元素的原位置

element = driver.find_element_by_name("xxx")

#定位元素要移动到的目标位置

target = driver.find_element_by_name("xxx")

#执行元素的移动操作

ActionChains(driver).drag_and_drop(element,target).perform()



move_to_element() 鼠标悬停(拖动+悬停)

#引入ActionChains类

from selenium.webdriver.common.action_chains

import ActionChains

#-------------------------------

'''鼠标拖动'''

element = driver.find_element_by_name("xxx")  #定位元素的原位置

target = driver.find_element_by_name("xxx") #定位元素要移动到的目标位置

ActionChains(driver).drag_and_drop(element,target).perform()#执行元素的移动操作

#---------------------------

'''鼠标悬停'''

from selenium.webdriver import ActionChains

driver.implicitly_wait(10)  #隐式等待10s
mouse_point=driver.find_element_by_xpath("/html/body/div[6]/div[3]/div[1]/div/div[2]/ul/li[2]/span")  #定位目标点
ActionChains(driver).move_to_element(mouse_point).perform()  #悬浮在这个点上

driver.find_element_by_link_text("陕西论坛").click()  #点击文字
time.sleep(4)  #强制等待4s

 Keys 类键盘操作的常用方法:

Keys 类键盘操作的常用方法:
引入Keys类:
    from selenium.webdriver.common.keys import Keys
常用方法:
  send_keys(Keys.BACK_SPACE) 删除键(BackSpace)
  send_keys(Keys.SPACE)  空格键(Space)
  send_keys(Keys.TAB)  制表键(Tab)
  send_keys(Keys.ESCAPE)  回退键(Esc)
  send_keys(Keys.ENTER) 回车键(Enter)
  send_keys(Keys.CONTROL,'a') 全选(Ctrl+A)
  send_keys(Keys.CONTROL,'c') 复制(Ctrl+C)
  send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)
  send_keys(Keys.CONTROL,'v') 粘贴(Ctrl+V)

...

#输入框输入内容

driver.find_element_by_id("kw1").send_keys("seleniumm")

time.sleep(3)

#删除多输入的一个m

driver.find_element_by_id("kw1").send_keys(Keys.BACK_SPACE)

time.sleep(3)

...

 

  打印信息(断言的信息):

  title 
  返回当前页面的标题
  current_url
  获取当前加载页面的URL
  text 
  获取元素的文本信息

#获得前面title,打印

title = driver.title print title

#获得前面URL,打印

now_url = driver.current_url print now_url

#获得登录成功的用户,打印

now_user=driver.find_element_by_id("spnUid").text

print (now_user)

 webdriver提供定位一组对象的方法:

find_elements_by_id()
find_elements_by_name()
find_elements_by_class_name()
find_elements_by_tag_name()
find_elements_by_link_text()
find_elements_by_partial_link_text()
find_elements_by_xpath()
find_elements_by_css_selector()
……

# 选择页面上所有的tag name 为input的元素

inputs = driver.find_elements_by_tag_name('input')

#然后从中过滤出tpye为checkbox的元素,单击勾选

for input in inputs:

  if input.get_attribute('type') == 'checkbox':

  input.click()

……



……

  #选择所有的type为checkbox的元素并单击勾选

checkboxes = driver.find_elements_by_css_selector('input[type=checkbox]')

for checkbox in checkboxes:

  checkbox.click()

……

 

层级定位:

……
#点击Link1链接(弹出下拉列表)
driver.find_element_by_link_text('Link1').click()

#在父亲元件下找到link为Action的子元素
menu = driver.find_element_by_id('dropdown1').find_element_by_link_text('Another action')

#鼠标移动到子元素上
ActionChains(driver).move_to_element(menu).perform()
……

 WebDriver 控制js弹窗

    在实际系统中,在完成某些操作时会弹出对话框来提示,主要分为"警告消息框","确认消息框","提示消息对话"三种类型的对话框。
1.警告消息框(alert)  警告消息框提供了一个"确定"按钮让用户关闭该消息框,并且该消息框是模式对话框,也就是说用户必须先关闭该消息框然后才能继续进行操作。
2.确认消息框(confirm)
  确认消息框向用户提示一个"是与否"问题,用户可以根据选择"确定"按钮和"取消"按钮。
3.提示消息对话(prompt)  
提示消息框提供了一个文本字段,用户可以在此字段输入一个答案来响应您的提示。该消息框有一个"确定"按钮和一个"取消"按钮。选择"确认"会响应对应的提示信息,选择"取消"会关闭对话框。
      switch_to_alert()    #定位弹出对话

      text                    #获取对话框文本值

      accept()                   #相当于点击"确认"

      dismiss()                 #相当于点击"取消"

      send_keys()               # 输入值,这个alert和confirm没有输入对话框,所以这里就不能用了,所以这里只能使用在prompt这里。
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
import timedriver=webdriver.Chrome()
driver.get(“https://www.baidu.com/”)
driver.implicitly_wait(10)#隐式等待10秒mouse=driver.find_element_by_link_text(“设置”) 
#鼠标移动到“设置”按钮
ActionChains(driver).move_to_element(mouse).perform()
driver.find_element_by_link_text(“搜索设置”).click() #点击“搜索设置”#强制等待4秒,注意:这里使用隐式等待或显示等待都将无法获取元素
time.sleep(4)#分两步,先定位下拉框,再点击选项
choice = driver.find_element_by_name("NR")
#choice.find_element_by_xpath('//*[@id="nr"]/option[3]').click()Select(choice).select_by_value("50")time.sleep(2)

#使用Select().select_by_index进行定位

案例:利用值定位

#使用Select().select_by_index进行定位#Select(choice).select_by_index(2)
#Select(choice).select_by_value(“50”)
Select(choice).select_by_text ("每页显示50条")

select里面方法除了上面介绍的三种,还有更多的功能如下:

select_by_index()  :通过索引定位

select_by_value()  :通过value值定位

select_by_visible_text() :通过文本值定位

deselect_all()          :取消所有选项

deselect_by_index()     :取消对应index选项

deselect_by_value()      :取消对应value选项

deselect_by_visible_text() :取消对应文本选项

first_selected_option()  :返回第一个选项

all_selected_options()   :返回所有的选项

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python中最常用模块包括:sys,os,re,json,math,random,time,datetime,imaplib,urllib,smtplib,email,tkinter,subprocess,shutil,ctypes,webbrowser,csv,argparse,logging 等等。 ### 回答2: 常用Python模块有很多,以下是一些常见的Python模块: 1. NumPy:用于进行科学计算和处理大型多维数组的基础库。 2. Pandas:提供了高性能、易用的数据结构和数据分析工具,用于数据清洗、数据分析和数据可视化。 3. Matplotlib:用于绘制各种类型的可视化图表,如折线图、柱状图、散点图等。 4. Scikit-learn:提供了各种机器学习算法和工具,用于数据挖掘和数据分析。 5. TensorFlow:用于构建和训练机器学习和深度学习模型的开源库。 6. Keras:基于TensorFlow等后端构建的高级神经网络库,简化了深度学习模型的构建和训练过程。 7. Flask:用于构建Web应用程序的轻量级Web框架。 8. Django:一个功能强大的Web框架,提供了完整的MVC架构和许多开箱即用的功能。 9. Requests:用于发送HTTP请求和处理响应的库。 10. BeautifulSoup:用于解析HTML和XML文档的库,常用于网络爬虫。 11. Scrapy:一个用于抓取网站数据的高级网络爬虫框架。 12. Selenium:用于自动化浏览器操作的库,常用于网页测试和数据采集。 以上是一些常用Python模块,根据具体应用场景和需求,还可以选择其他适合的模块。 ### 回答3: 常用Python模块有很多,下面是一些常见的模块及其简要说明: 1. NumPy:用于进行科学计算和数值运算的基础库,提供了数组对象和各种数据处理函数。 2. Pandas:提供了快速、灵活和方便的数据结构,用于数据处理和分析,常用于处理表格形式的数据。 3. Matplotlib:用于绘制各种类型的图表和图形的绘图库,可以创建折线图、散点图、柱状图等。 4. scikit-learn:机器学习的常用库,包含了多种机器学习算法和工具,用于分类、回归、聚类等任务。 5. TensorFlow:用于深度学习和人工智能的开源框架,提供了丰富的神经网络模型和训练工具。 6. BeautifulSoup:用于网页解析和数据提取的库,可以很方便地从HTML或XML文档中提取有用的信息。 7. requests:用于发送HTTP请求和接收响应的库,可以模拟浏览器的行为访问网页和获取数据。 8. Flask:用于构建Web应用程序的轻量级框架,支持路由、模板等功能。 9. Django:一个功能强大的Web框架,提供了完整的开发工具和强大的数据库支持。 10. re(正则表达式):用于处理字符串匹配和模式查找的模块,提供了强大的文本处理功能。 以上是一些常见的Python模块,根据实际需要,还可以使用其他各种领域的模块,例如科学计算、图像处理、自然语言处理等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值