1,8种单数定位方式

# 通过ID定位目标元素
driver.find_element_by_id('i1')
# 通过className定位目标元素
driver.find_element_by_class_name('classname')
# 通过name属性定位目标元素
driver.find_element_by_name('n1')
# 通过Xpath定位目标元素
driver.find_element_by_xpath('//*[@id="i1"]')
# 通过css Selector定位目标元素
driver.find_element_by_css_selector('[placeholder="请通过CSS SELECTOR定位元素"]')
# 通过标签名称定位(注:在一个页面中,标签一定会重复,所以不用这个来进行定位)
driver.find_element_by_tag_name('input') # 通过标签中的文本查找元素
driver.find_element_by_link_text('登录')
# 通过标签中文本的模糊匹配查找
driver.find_elements_by_partial_link_text('录')

2,8种复数定位方式

# 复数模式 以tag为例 返回的是相同所有元素,以list的方式返回
# element = driver.find_elements_by_tag_name('input')[5]
# driver.find_elements_by_class_name()
# driver.find_elements_by_id()
# driver.find_elements_by_link_text()
# driver.find_elements_by_partial_link_text()
# driver.find_elements_by_name()
# driver.find_elements_by_xpath()
# driver.find_elements_by_css_selector()

3,2种底层定位方式

# driver.find_element()
# driver.find_elements() 4,向文本框发送字符串sendkeys()
from selenium import webdriver
'''
# Chrome的配置
option = webdriver.ChromeOptions()
# # 增加启动就放大浏览器
option.add_argument("--start-maximized")
# # 启动浏览器
driver = webdriver.Chrome(chrome_options=option)
# 请求目标网址
driver.get("http://ui.imdsx.cn/uitester/")
#定位元素
element = driver.find_element_by_id('i1')
#向文本框发送字符串
element.send_keys('UI自动化')

4,定位到元素后,点击click

from selenium import webdriver
'''
# Chrome的配置
option = webdriver.ChromeOptions()
# # 增加启动就放大浏览器
option.add_argument("--start-maximized")
# # 启动浏览器
driver = webdriver.Chrome(chrome_options=option)
# 请求目标网址
driver.get("http://ui.imdsx.cn/uitester/")
#定位链接元素
element = driver.find_element_by_link_text('跳转大师兄博客地址')
#点击定位到链接
element.click()

5,执行JavaScript语句

# 执行JavaScript语句
driver.execute_script('JavaScript Commond') # 例:
# 通过js来操作滚动条
# 参数1:x 参数2: y
driver.execute_script('window.scrollTo(0,0);')# 滚动条滑动到顶端

6,关闭与退出

# 当开启多个时,关闭当前页面
driver.close() # 退出并关闭所有页面驱动
driver.quit()

7,窗口大小设置

driver = webdriver.Chrome()
# 获取浏览器大小
# size = driver.get_window_size()
# # 设置浏览器大小
# driver.set_window_size(1200,100)

8,获取所有窗口及其他

# 获取所有浏览器窗口的名字
# print(driver.window_handles)
# #获取当前浏览器窗口的名字
# print(driver.current_window_handle)
# 返回当前url
# print(driver.current_url)
# 返回是运行的什么浏览器,例如chrome
# print(driver.name)
# 页面面源码
# print(driver.page_source)
# 标题
# print(driver.title)

9,截取当前窗口的图片,会把当前页面截图保存

driver.get_screenshot_as_file('test.png')

10,element Api

# 根据标签属性名称,获取属性value
element.get_attribute('style')
# 向输入框输入字符串 如果input的type为file类型 可以输入文件绝对路径上传文件
element.send_keys()
# 清除文本内容
element.clear()
# 鼠标左键点击操作
element.click()
# 通过属性名称获取属性
element.get_property('id')
 

selenium-webdirver api-定位方式的更多相关文章

  1. python+selenium二:定位方式

    # 八种单数定位方式:elementfrom selenium import webdriverimport time driver = webdriver.Firefox()time.sleep(2 ...

  2. selenium的基本定位方式总结

    Selenium提供了8种定位方式. id name class name tag name link text partial link text xpath css selector 这8种定位方 ...

  3. Selenium八大元素定位方式

    1.根据id来定位: import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.sele ...

  4. selenium定位方式-获取标签元素:find_element_by_xxx

    定位方式取舍# 唯一定位方式.多属性定位.层级+角标定位(离目标元素越近,相对定位越好) # 推荐用css selector(很少用递进层次的定位)# 什么时候用xpath呢? 当你定位元素时,必须要 ...

  5. selenium:css_selector定位详解

    selenium:css_selector定位详解(css selector和xpath的比较) 来源:https://www.cnblogs.com/haifeima/p/10138154.html ...

  6. selenium:css_selector定位详解(css selector和xpath的比较)

    selenium使用css selector和xpath的比较 selenium提供的定位方式(常用) ID NAME CLASS CSS SELECTOR XPATH   推荐的定位方式的优先级 优 ...

  7. 《手把手教你》系列技巧篇(二十)-java+ selenium自动化测试-元素定位大法之终卷(详细教程)

    1.简介 这篇文章主要是对前边的文章中的一些总结和拓展.本来是不打算写着一篇的,但是由于前后文章定位元素的时间有点长,怕大家忘记了,就在这里简单做一个总结和拓展. 2.Selenium八种定位方式 S ...

  8. Selenium Webdriver元素定位的八种常用方式

    楼主原创,欢迎学习和交流,码字不容易,转载请注明出处,谢谢. 在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素 ...

  9. 【高德地图API】从零开始学高德JS API(七)——定位方式大揭秘

    原文:[高德地图API]从零开始学高德JS API(七)——定位方式大揭秘 摘要:关于定位,分为GPS定位和网络定位2种.GPS定位,精度较高,可达到10米,但室内不可用,且超级费电.网络定位,分为w ...

  10. selenium WebDriver 八种定位方式源码

    /* * 多种元素定位方式 */ package com.sfwork; import java.util.List; import org.openqa.selenium.By; import or ...

随机推荐

  1. Java基础—类和对象

    基本概念 对象:对象是类的一个实例,有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字.品种:行为有:摇尾巴.叫.吃等. 类:类是具有相同属性和方法的一组对象的集合,它为属于该类的所有对象提 ...

  2. 检测tomcat服务是否正常

    由于tomcat服务经常会出现进程在,但是服务却无法正常响应的问题,而且进程跑在docker容器中,使用zabbix控制不是很方便,故此写了个简单的小脚本: #!/bin/bash #Author:f ...

  3. 每天一个Linux命令(43)at命令

        at命令用于在指定时间执行命令.at允许使用一套相当复杂的指定时间的方法.可以用相对时间法指定,也可以用绝对时间法指定.     (1)用法:     用法:  at  [选项参数]  [时间 ...

  4. github资源下载速度慢的解决办法

    xx-net:https://github.com/XX-net/XX-Net

  5. Python编程-多态、封装、特性

    一.多态与多态性 1.多态 (1)什么是多态 多态指的是一类事物有多种形态,(一个抽象类有多个子类,因而多态的概念依赖于继承) 序列类型有多种形态:字符串,列表,元组. 动物有多种形态:人,狗,猪 文 ...

  6. tomcat8配置tomcat-users.xml不生效

    一般想进入tomcat管理后台,只要在tomcat-users.xml配置文件中添加一下内容即可 <role rolename="manager-gui"/> < ...

  7. @MarkFan 口语练习录音 20140423 [风雨哈佛路.Homeless To Harvard口语录音]

    世界在转动,你只是一粒尘埃 没有你,世界照样在转 现实不会按照你的意识去改变的 一些人的需求 一些人的意志要比你更强 严酷的生活会让人不知所措 所以他们久久地困在挫败中 我们生气地抱怨,而对整体的形势 ...

  8. 跨平台移动开发_Windows Phone 8 使用 PhoneGap 方法

    第一步,下载Windows Phone SDK 8.0 http://www.microsoft.com/zh-cn/download/details.aspx?id=35471 离线下载地址(推荐使 ...

  9. Swift中的? ! as as? as!

    ?: 代表这是个可选类型(optional)的.如下,如果num有就为Int类型的,如果没有值那么就是nil. let num:Int? 当我对number进行显示赋值时那么number就是Int类型 ...

  10. DBUtiles中的简单使用(QueryRunner和ResultSetHandler的手动实现)

    DBUtiles是一个很好的处理JDBC的工具类.(DbUtils is a small set of classes designed to make working with JDBC easie ...