selenium-webdirver api-定位方式
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-定位方式的更多相关文章
- python+selenium二:定位方式
# 八种单数定位方式:elementfrom selenium import webdriverimport time driver = webdriver.Firefox()time.sleep(2 ...
- selenium的基本定位方式总结
Selenium提供了8种定位方式. id name class name tag name link text partial link text xpath css selector 这8种定位方 ...
- Selenium八大元素定位方式
1.根据id来定位: import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.sele ...
- selenium定位方式-获取标签元素:find_element_by_xxx
定位方式取舍# 唯一定位方式.多属性定位.层级+角标定位(离目标元素越近,相对定位越好) # 推荐用css selector(很少用递进层次的定位)# 什么时候用xpath呢? 当你定位元素时,必须要 ...
- selenium:css_selector定位详解
selenium:css_selector定位详解(css selector和xpath的比较) 来源:https://www.cnblogs.com/haifeima/p/10138154.html ...
- selenium:css_selector定位详解(css selector和xpath的比较)
selenium使用css selector和xpath的比较 selenium提供的定位方式(常用) ID NAME CLASS CSS SELECTOR XPATH 推荐的定位方式的优先级 优 ...
- 《手把手教你》系列技巧篇(二十)-java+ selenium自动化测试-元素定位大法之终卷(详细教程)
1.简介 这篇文章主要是对前边的文章中的一些总结和拓展.本来是不打算写着一篇的,但是由于前后文章定位元素的时间有点长,怕大家忘记了,就在这里简单做一个总结和拓展. 2.Selenium八种定位方式 S ...
- Selenium Webdriver元素定位的八种常用方式
楼主原创,欢迎学习和交流,码字不容易,转载请注明出处,谢谢. 在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素 ...
- 【高德地图API】从零开始学高德JS API(七)——定位方式大揭秘
原文:[高德地图API]从零开始学高德JS API(七)——定位方式大揭秘 摘要:关于定位,分为GPS定位和网络定位2种.GPS定位,精度较高,可达到10米,但室内不可用,且超级费电.网络定位,分为w ...
- selenium WebDriver 八种定位方式源码
/* * 多种元素定位方式 */ package com.sfwork; import java.util.List; import org.openqa.selenium.By; import or ...
随机推荐
- 微信公众号的搭建-第四天(2)-获取并缓存access_token
1. 什么是access_token? 为了使第三方开发者能够为用户提供更多更有价值的个性化服务,微信公众平台 开放了许多接口,包括自定义菜单接口.客服接口.获取用户信息接口.用户分组接口.群发接口等 ...
- MySQL数据库(9)_MySQL数据库常用操作命令
注:刚安装好的MySql包含一个含空密码的root帐户和一个匿名帐户,这是很大的安全隐患,对于一些重要的应用我们应将安全性尽可能提高,在这里应把匿名帐户删除. root帐户设置密码,可用如下命令进行: ...
- SPOJ - HORRIBLE 【线段树】
思路 线段树 区间更新 模板题 注意数据范围 AC代码 #include <cstdio> #include <cstring> #include <ctype.h> ...
- Linux查看某个端口+gcc动态编译
Linux下就: 1.lsof -i:端口号 2.netstat -tunlp|grep 端口号 gcc:动态编译 gcc –fpic –c file.c –o file.o gcc –shared ...
- Python学习进程(12)模块
模块让你能够有逻辑地组织你的Python代码段. (1)python模块: 模块化的好处: 1.把相关的代码分配到一个模块里能让你的代码更好用,更易懂. 2.模块也是Python对象, ...
- h5新特性 File API详解
之前一直觉得h5的新特性就是一些新标签呢,直到想研究一下图片上传预览的原理,才发现还是有好多新的api的,只是不兼容ie低版本,挺可惜的, File API在表单中文件输入字段基础上,又添加了一些直接 ...
- 20145230《JAVA程序设计》第2周学习总结
20145230 <Java程序设计>第2周学习总结 教材学习内容总结 本周我学习了<JAVA学习笔记>中的第三章内容,让我对JAVA有了进一步的了解.第三章主要是介绍JAVA ...
- Cocos2d-x项目移植到WP8系列之五:播放MP3
原文链接: http://www.cnblogs.com/zouzf/p/3972549.html 这一块的细节还是不太了解,只是东凑西拼能跑起来而已 1.网上下载lamb库 生成需要的lib库,详情 ...
- 在shell中使用sendmail发送邮件
cat > sendmymail.sh #!/bin/bash/usr/sbin/sendmail -t <<EOFFrom: Mail testing <abc@gmail. ...
- 【atcoder】Two Sequences [arc092 D](思维题)
题目传送门:https://arc092.contest.atcoder.jp/tasks/arc092_b 这场arc好难啊...这场感觉不像正常的arc...其实这道题还可以更早写出来的,但是蒟蒻 ...





