还有此篇内容也丰富Selenium常见元素定位方法和操作的学习介绍

selenium Python 总结一些工作中可能会经常使用到的API。

  • 1.获取当前页面的Url
方法:current_url
实例:driver.current_url

  • 2.获取元素坐标
方法:location
解释:首先查找到你要获取元素的,然后调用location方法
实例:driver.find_element_by_xpath("xpath").location

  • 3.表单的提交
方法:submit
解释:查找到表单(from)直接调用submit即可
实例:driver.find_element_by_id("form1").submit()

  • 4.获取CSS的属性值
方法:value_of_css_property(css_name)
实例:driver.find_element_by_css_selector("input.btn").value_of_css_property("input.btn")

  • 5.获取元素的属性值
方法:get_attribute(element_name)
实例:driver.find_element_by_id("kw").get_attribute("kw")

  • 6.判断元素是否被选中
方法:is_selected()
实例:driver.find_element_by_id("form1").is_selected()

  • 7.返回元素的大小
方法:size
实例:driver.find_element_by_id("iptPassword").size
返回值:{'width': 250, 'height': 30}

  • 8.判断元素是否显示
方法:is_displayed()
实例:driver.find_element_by_id("iptPassword").is_displayed()

  • 9.判断元素是否被使用
方法:is_enabled()
实例:driver.find_element_by_id("iptPassword").is_enabled()

  • 10.获取元素的文本值
方法:text
实例:driver.find_element_by_id("iptUsername").text

  • 11.元素赋值
方法:send_keys(*values)
实例:driver.find_element_by_id("iptUsername").send_keys('admin')

  • 12.返回元素的tagName
方法:tag_name
实例:driver.find_element_by_id("iptUsername").tag_name

  • 13.删除浏览器所有的cookies
方法:delete_all_cookies()
实例:driver.delete_all_cookies()

  • 14.删除指定的cookie
方法:delete_cookie(name)
实例:deriver.delete_cookie("my_cookie_name")

  • 15.关闭浏览器
方法:close()
实例:driver.close()

  • 16.关闭浏览器并且退出驱动程序
方法:quit()
实例:driver.quit()

  • 17.返回上一页
方法:back()
实例:driver.back()

  • 18.清空输入框
方法:clear()
实例:driver.clear()

  • 19.浏览器窗口最大化
方法:maximize_window()
实例:driver.maximize_window()

  • 20.查看浏览器的名字
方法:name
实例:drvier.name

  • 21.返回当前会话中的cookies
方法:get_cookies()
实例:driver.get_cookies()

  • 22.根据cookie name 查找映射Value值
方法:driver.get_cookie(cookie_name)
实例:driver.get_cookie("NET_SessionId")

  • 23.截取当前页面
方法:get_screenshot_as_file(filename)
实例:driver.get_screenshot_as_file("D:\\Program Files\\Python27\\NM.bmp")

  • 24.获取当前窗口的坐标
方法:get_window_position()
实例:driver.get_window_position()

  • 25.获取当前窗口的长和宽
方法:get_window_size()
实例:driver.get_window_size()

ActionChains类鼠标操作的常用方法:

引入ActionChains类:from selenium.webdriver.common.action_chains import ActionChains
  • 26.右击
方法:context_click()
实例:ActionChains(driver).context_click(driver.find_element_by_id("id")).perform()

  • 27.双击
方法:double_click()
实例:ActionChains(driver).double_click(driver.find_element_by_name("name")).perform()

  • 28:鼠标拖放
方法:drag_and_drop(source, target)
source:鼠标按下的源元素;target:鼠标释放的目标元素
实例:element = driver.find_element_by_name("name")
target = driver.find_element_by_name("name")
ActionChains(driver).drag_and_drop(element, target).perform()

  • 29:鼠标悬停在一个元素上(hover)
方法:move_to_element()
实例:above = driver.find_element_by_xpath("xpath路径")
ActionChains(driver).move_to_element(above).perform()

  • 30:按下鼠标左键在一个元素上
方法:click_and_hold()
实例:left = driver.find_element_by_name("name")
ActionChains(driver).click_and_hold(left).perform()

键盘事件:

引入Keys类包:from selenium.webdriver.common.keys import Keys

  • 31:输入
方法:send_keys()
实例:driver.find_element_by_id("id").send_keys("XXX")

  • 32:输入空格
方法:send_keys(Keys.SPACE)
实例:driver.find_element_by_id("id").send_keys(Keys.SPACE)

  • 33:ctrl + a 
    全选输入框的内容 
    ctrl + x 
    剪切输入框的内容 
    ctrl + v 
    粘贴到输入框 
    ctrl + c 
    复制
方法:send_keys(Keys.CONTROL,'a')
实例:driver.find_element_by_id("id").send_keys(Keys.CONTROL,'a')

  • 34:回车代替点击
方法:send_keys(Keys.ENTER)
实例:driver.find_element_by_id("id").send_keys(Keys.ENTER)

  • 35:制表键(Tab)
方法:send_keys(Keys.TAB)
实例:driver.find_element_by_id("id").send_keys(Keys.TAB)

  • 36:回退键(Esc)
方法:send_keys(Keys.ESCAPE)
实例:driver.find_element_by_id("id").send_keys(Keys.ESCAPE)

等待时间

导入 WebDriverWait 包 
from selenium.webdriver.support.ui import WebDriverWait 
导入 time 包 
import time

  • 37:固定等待时间
方法:sleep()
实例:time.sleep(5) # 等待5秒

  • 38:等待一个元素被发现,或一个命令完成,超出了设置时间则抛出异常智能等待。
方法:implicitly_wait()
实例:driver.implicitly_wait(30)

  • 39:在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常
"方法:WebDriverWait()"

#WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
#——driver:WebDriver的驱动程序(Ie, Firefox, Chrome或远程)
#——timeout:最长超时时间,默认以秒为单位
#——poll_frequency:休眠时间的间隔(步长)时间,默认为0.5秒
#——ignored_exceptions:超时后的异常信息,默认情况下抛NoSuchElementException异常 实例:
element = WebDriverWait(driver, 10).until(lambda x: x.find_element_by_id("id")) #一般由unit()或until_not()方法配合使用,同上: 调用该方法提供的驱动程序作为一个参数,直到返回值不为False。
——until(method, message=’’) 调用该方法提供的驱动程序作为一个参数,直到返回值为False。
——until_not(method, message=’’) # 还可以与expected_conditions 一起使用
from selenium.webdriver.support import expected_conditions as EC # 实例: 判断某个元素是否可见并且是enable的,这样才clickable WebDriverWait(dr,15,1).until(EC.element_to_be_clickable((By.ID,"EmployeeListMenu")),"Not Find element")

  • 40:选择当前页面上所有tag
name为input的元素
inputs = driver.find_elements_by_tag_name(‘input‘)

  • 41:从中过滤出type为checkbox的元素,并勾选上
for input in inputs:
if input.get_attribute(‘type‘) == ‘checkbox‘:
input.click()

  • 42:使用CSS定位选择所有type为checkbox的元素,并勾选上
checkboxes = driver.find_elements_by_css_selector(‘input[type = checkbox]‘)
for checkbox in checkboxes:
  checkbox.click()

  • 43:把最后一个checkbox的勾去掉,pop()方法空参数时,默认移除list中的最后一个元素。
driver.find_elements_by_css_selector(‘input[type = checkbox]‘).pop().click()

切换活动对象

  • 44:切换浏览器handle
# 切换不同的tab页
方法:driver.switch_to.window(window_name)
# 备注:从A页跳转到B页,句柄已经切换过去,但是焦点没有切过去,所以需要switch_to.window,把焦点也切过去,才可以在当前页进行操作。
# 切换是思路,获取所有的句柄,因为返回是一个list,而且要切换的对象都是最后一个,可以使用[-1]直接切过去
# 例如:
driver.switch_to.window(driver.window_handles[-1])
  • 45:返回上一级表单
方法: driver.switch_to_parent_content()#旧方法
driver.switch_to.parent_content#新方法

  • 46:返回最外层表单
方法: driver.switch_to_default_content()#旧方法
driver.switch_to.default_content()#新方法

  • 47:切换到指定frame中
方法:driver.switch_to.frame('xxx')
实例:driver.switch_to.frame('frame_name')
driver.switch_to.frame(index)
driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0])

  • 48:获取当前page的title
方法:driver.title
实例:driver.title

  • 49:焦点切换到弹窗。
方法:driver.switch_to_alert()
实例:driver.switch_to_alert()

  • 50:前进
方法:
driver.forward()

  • 51:刷新页面
方法:driver.refresh() 

Python Selenium 常用方法总结(不断补充)的更多相关文章

  1. Python+selenium常用方法(Webdriver API)

    小编整理了目前学习的Python+selenium常用的一些方法函数,以后有新增再随时更新. 加载浏览器驱动: webdriver.Firefox() 打开页面:get() 关闭浏览器:quit() ...

  2. Python Selenium 常用方法总结

    selenium Python 总结一些工作中可能会经常使用到的API. 1.获取当前页面的Url 方法:current_url  实例:driver.current_url    2.获取元素坐标 ...

  3. 转载——Python Selenium 常用方法总结

    selenium Python 总结一些工作中可能会经常使用到的API. 1.获取当前页面的Url 方法:current_url 实例:driver.current_url 2.获取元素坐标 方法:l ...

  4. Python Selenium Webdriver常用方法总结

    Python Selenium Webdriver常用方法总结 常用方法函数 加载浏览器驱动: webdriver.Firefox() 打开页面:get() 关闭浏览器:quit() 最大化窗口: m ...

  5. python selenium API 常用方法

    配置使用环境 下载相应的浏览器驱动, Firefox 是默认的 本文以 chrome 为主 ,放在scripts目录下ChromeDriver 官方下载地址 : 所有版本的 ChromeDriver ...

  6. WEB自动化(Python+selenium)的API

    在做Web自动化过程中,汇总了Python+selenium的API相关方法,给公司里的同事做了第二次培训,分享给大家                                         ...

  7. Python + Selenium + AutoIt 模拟键盘实现另存为、上传、下载操作详解

    前言 在web页面中,可以使用selenium的定位方式来识别元素,从而来实现页面中的自动化,但对于页面中弹出的文件选择框,selenium就实现不了了,所以就需引用AutoIt工具来实现. Auto ...

  8. Python Selenium 文件上传之Autoit

    今天补充一种文件上传的方法 主要是因为工作中使用SendKeys方法不稳定,具体方法见: Python Selenium 文件上传之SendKeys 这种方法直接通过命令行执行脚本时没有问题,可以成功 ...

  9. Python+Selenium笔记(九):操作警告和弹出框

    #之前发的 driver.switch_to_alert() 这句虽然可以运行通过,但是会弹出警告信息(这种写法3.x不建议使用)  改成 driver.switch_to.alert就不会了. (一 ...

随机推荐

  1. Chapter6_访问权限控制_类的访问权限

    在Java中,访问权限修饰词也可以用于确定库中的哪些类对于该库的使用者是可用的,类既不可以是private也不可以是protected的,对于类的访问权限,只有两种选择:包访问权限或者public.下 ...

  2. 图解HTTP第十章

    Web 的攻击技术 1>在客户端即可篡改请求 2>针对 Web 应用的攻击模式 3>因输出值转义不完全引发的安全漏洞 [1]跨站脚本攻击 [2]SQL 注入攻击 [3]OS 命令注入 ...

  3. centos7.5搭建cdh5.13.0

    序言 本文集群搭建为三台机器,cdh版本为5.13.0,以下是安装过程中所用到的软件包等,可以自行下载.一.前期准备1.安装环境 系统:centos7.5/最小安装版本/64位 内存:主节点 --&g ...

  4. P3806 【模板】点分治1

    一道淀粉质的模版题,开始是暴力 #include <bits/stdc++.h> #define up(i,l,r) for(register int i = (l); i <= ( ...

  5. java开发师笔试面试每日8题(1)

    1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致. 2.使用fin ...

  6. spring扩展点总结

    NamespaceHandler 通过自定义的NamespaceHandler,配合BeanDefinitionParser,可以完成自定义Bean的组装操作,对于BeanDefinition的数据结 ...

  7. mysql实现多实例

    > mariadb安装    yum install mariadb-server > 创建相关目录,及设置权限    mkdir /mysqldb; mkdir /mysqldb/{33 ...

  8. How Does Closure Work in Javascript?

    Simply, closure is the scope that it can visite and operate the variables outside of the function wh ...

  9. idea 中dao层自动生成接口

    1.在生成接口的类上右键 2.选中要生成的接口方法 3.点击Yes 4.出现(? reference in ? file)即生成成功

  10. 10.1牛客J题

    https://www.nowcoder.com/acm/contest/201/J Description: 给你一行括号,定义了括号合格的形式,然后Q次询问,问你这个区间内括号是否合格 Solut ...