Python+Selenium定位元素的方法
Python+Selenium有以下八种定位元素的方法:
1. find_element_by_id()
eg: find_element_by_id("kw")
2. find_element_by_name()
eg: find_element_by_name("wd")
3. find_element_by_class_name()
eg: find_element_by_class_name("bg s_btn")
4. find_element_by_tag_name()
eg: find_element_by_tag_name("input") -- 一般页面上重复标签比较多,所以很难通过标签名去区分不同的元素
5. find_element_by_link_text()
eg: find_element_by_link_text("hao123")
eg: find_element_by_link_text(u"新闻") -- 在中文前面加个小“u”可以有效的避免中文乱码的问题
6. find_element_by_partial_link_text()
eg: find_element_by_partial_link_text("一个很长的文本的一部分") -- 如果一个文本链接很长,可以只取其中一部分
7. find_element_by_xpath()
eg: find_element_by_xpath("/html/body/div/div[2]/div/div/div/from/span[2]/input") -- 通过绝对路径定位
eg: find_element_by_xpath("//input[@autocomplete='off']") -- 通过元素任意属性定位
eg: find_element_by_xpath("//*[@class='bg s_btn']") -- 如果不想指定标签名也可以用星号(*)代替
eg: find_element_by_xpath("//form[@id='form']/span[2]/input") -- 通过层级和属性定位
eg: find_element_by_xpath("//input[@id='kw' and @class='su']/span/input") -- 可以使用逻辑运算符
8. find_element_by_css_selector()
eg: find_element_by_css_selector(".s_ipt") -- 通过class属性定位
eg: find_element_by_css_selector("#kw") -- 通过id属性定位
eg: find_element_by_css_selector("input") -- 通过标签名定位
eg: find_element_by_css_selector("span>input") -- 通过父子关系定位
eg: find_element_by_css_selector("input[autocomplete='off']") -- 通过属性定位
eg: find_element_by_css_selector("span.bg s_btn_wr>input#su") -- 组合定位
用By定位元素:
在使用 By 时需要将 By 类导入
from selenium.webdriver.common.by import By
find_element(By.ID,"kw")
find_element(By.NAME,"wd")
find_element(By.CLASS_NAME,"s_ipt")
find_element(By.TAG_NAME,"input")
find_element(By.LINK_TEXT,u"新闻")
find_element(By.PARTIAL_LINK_TEXT,u"新")
find_element(By.XPATH,"//*[@class='bg s_btn']")
find_element(By.CSS_SELECTOR,"span.bg s_btn_wr>input#su")
Python+Selenium定位元素的方法的更多相关文章
- python+selenium 定位元素的主要方法
selenium对web各元素的操作首先就要先定位元素,定位元素的方法主要有以下几种: 通过id定位元素:find_element_by_id("id_vaule") 通过name ...
- Python Selenium定位元素常用解决办法
在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况(报selenium.common.exceptions.NoSuchElementException), ...
- selenium定位元素的方法
1.id定位: find_element_by_id() 从上面定位到的搜索框属性中,有个id="kw"的属性,我们可以通过这个id定位到这个搜索框 代码: # coding = ...
- 【selenium学习笔记一】python + selenium定位页面元素的办法。
1.什么是Selenium,为什么web测试,大家都用它? Selenium设计初衷就是为web项目的验收测试再开发.内核使用的是javaScript语言编写,几乎支持所以能运行javaScript的 ...
- python + selenium定位页面元素的办法
1.什么是Selenium,为什么web测试,大家都用它? Selenium设计初衷就是为web项目的验收测试再开发.内核使用的是javaScript语言编写,几乎支持所以能运行javaScript的 ...
- Web自动化基础(一)使用Selenium定位元素
什么是元素?我们知道网页上有什么内容显示出来,比如一个按钮,一个输入框,一张图片,都可以理解成元素,这些元素是由html代码构成的,比如图片可以用<img>标签来展示,一个输入框可以用&l ...
- selenium 定位元素可以用多个findElement
selenium 定位元素可以用多个findElement,如driver.findElement(By.id"XXX").findElement(By.linkText(XXX) ...
- python中列表元素连接方法join用法实例
python中列表元素连接方法join用法实例 这篇文章主要介绍了python中列表元素连接方法join用法,实例分析了Python中join方法的使用技巧,非常具有实用价值,分享给大家供大家参考. ...
- python + selenium 练习篇 - 定位元素的方法
1.利用ID定位元素(能直接通过ID来定位的元素比较少) # coding=utf-8from selenium import webdriverdriver = webdriver.Chrome() ...
随机推荐
- HYSBZ 1036 树的统计Count (水题树链剖分)
题意:中文题. 析:就是直接维护一个最大值和一个和,用线段树维护即可,这个题很简单,但是我卡了一晚上,就是在定位的时候,位置直接反过来了,但是样例全过了...真是... 代码如下: #pragma c ...
- Java 起名规范
注重代码编写规范: 1)都得遵循标识号的规范 2)不能以关键字,数字开头.也不要以拼音起名,最好用英文单词,单词组合来起名. 3)采用驼峰表示法,使用英文单词组合,单词首字母要大些,起到分割作用. - ...
- Django实战之古风博客
感谢 感谢杨青 大大的古风模板,设计的很棒,给个赞. 如有侵权,请联系我 运行环境 python3.6 Django==1.11.4 django-ckeditor==5.4.0 django-js- ...
- MVC 基本概念
1. M(Model-模型): 数据模型. 负责定义信息格式与信息反问的界面,包括商业逻辑,数据反问.(可以理解成是三层模式中的 BLL+DAL ) 2. V(View-视图): 负责用户界面 UI ...
- 解决"要执行请求的操作,WordPress需要访问您网页服务器的权限"
比如我们在VPS主机中创建WordPress站点的时候,会有需要在线安装主题.插件等,但是点击下载安装的时候会有"要执行请求的操作,WordPress需要访问您网页服务器的权限. 请输入您的 ...
- ### 20165219 2017-2018-2《Java程序设计》结对编程一 第二周总结
20165219 2017-2018-2<Java程序设计>结对编程一 第二周总结 结对对象 20165219王彦博 20165232何彦达 需求分析 实现一个程序,要求: 1 支持整数运 ...
- 使用IIS服务器部署网页,需要开启服务里的“ASP.NET 状态服务”
否则会提示“请确保 ASP.NET State Service (ASP.NET 状态服务)已启动,并且客户端端口与服务器端口相同.如果服务器位于远程计算机上,请检查 HKEY_LOCAL_MACHI ...
- eclipse搭建maven project的spring4 spring mvc mybatis
一,先确定已经安装好了Eclipse Java EE IDE for Web Developers我用的是如下版本 Version: Neon.3 Release (4.6.3)Build id: 2 ...
- ubuntu15.04下安装docker
##获得更多资料欢迎进入我的网站或者 csdn或者博客园 最近听说docker很火,不知道什么东西,只知道是一个容器,可以跨平台.闲来无事,我也来倒弄倒弄.本文主要介绍:ubuntu下的安装,以及基 ...
- [jvm]基于jvm的线程实现
一.线程的实现 学过操作系统的肯定都知道: 进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位. 线程:是进程的一个执行单元,是进程内可调度实体. ...