selenium定位方式-获取标签元素:find_element_by_xxx
定位方式取舍
# 唯一定位方式、多属性定位、层级+角标定位(离目标元素越近,相对定位越好) # 推荐用css selector(很少用递进层次的定位)
# 什么时候用xpath呢? 当你定位元素时,必须要用角标定位才可以确立唯一时,可以选用xpath
selenium提供种定位方式,其中包含种单数种复数种父类写法
获取标签元素的8种单数方式如下:
(element是单数,elements是复数)
from selenium import webdriver
import time driver = webdriver.Chrome()
driver.get('http://ui.imdsx.cn/uitester') # 最大化窗口
driver.maximize_window() # 将屏幕滚动定位到最上方
js = 'window.scrollTo(0,0);'
driver.execute_script(js) # 停顿2秒后再进行操作
time.sleep(2) ##################################### # 通过ID定位目标元素
driver.find_element_by_id('i1') # 通过className定位目标元素
driver.find_element_by_class_name('c1') # 通过name属性定位目标元素
driver.find_element_by_name('n1') # 通过Xpath定位目标元素
driver.find_element_by_xpath('//*[@id="i1"]').send_keys('这是在输入框内输入的文本信息') # 通过css Selector定位目标元素
element=driver.find_element_by_css_selector('input[placeholder="请通过CSS SELECTOR定位元素"]')
element.send_keys('') # 通过标签名称定位(注:在一个页面中,标签一定会重复,所以不用这个来进行定位)
# 默认写在多个相同标签的第一个里面
driver.find_element_by_tag_name('input').send_keys('') # 通过标签中的文本查找元素
driver.find_element_by_link_text('跳转大师兄博客地址').click() # 通过标签中文本的模糊匹配查找
driver.find_element_by_partial_link_text('大师兄').click()
# 单数的父类,是上面8种单数方式的底层封装。参数化的一种调用方式而已。
driver.find_element()
获取标签元素的复数方式和单数方式是一一对应的,由于复数形式,返回的是list,使用不方便,不知道要取哪个值,所以实际运用中并不常用
举一个例子:
from selenium import webdriver driver = webdriver.Chrome()
driver.get('http://ui.imdsx.cn/html') js = 'window.scrollTo(0,1800);'
driver.execute_script(js) elements = driver.find_elements_by_css_selector('select')
print(elements)
输出结果如下:
[<selenium.webdriver.remote.webelement.WebElement (session="f4e11718e43e6bd3415e10c0e43998e0", element="0.9816753200516803-1")>, <selenium.webdriver.remote.webelement.WebElement (session="f4e11718e43e6bd3415e10c0e43998e0", element="0.9816753200516803-2")>, <selenium.webdriver.remote.webelement.WebElement (session="f4e11718e43e6bd3415e10c0e43998e0", element="0.9816753200516803-3")>, <selenium.webdriver.remote.webelement.WebElement (session="f4e11718e43e6bd3415e10c0e43998e0", element="0.9816753200516803-4")>]
selenium定位方式-获取标签元素:find_element_by_xxx的更多相关文章
- 了解 Selenium 定位方式
※元素定位的重要性:在于查找元素 And 执行元素 定位元素的三种方法 1.定位单个元素:在定位单个元素时,selenium-webdriver 提示了如下一些方法对元素进行定位.在这些定位方式中,优 ...
- Selenium定位不到指定元素原因之iframe(unable to locate element)
浏览过程中,图片中的内容可能太小,无法看清,可以>右键>在新标签中打开 Outline 项目原因,需要用selenium实现模拟登陆.模拟上传文件,自然就需要模拟点击[上传]按钮: 模拟点 ...
- selenium 定位方式
在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.其中By类的常用定位方式共八种,现分别介绍如下 ...
- selenium定位方式-Xpath使用方法
什么是Xpath? XPath是XML的路径语言,通俗一点讲就是通过元素的路径来查找到这个标签元素. 一. 在火狐浏览器上安装Xpath 方法如下: 1.使用 Firefox 访问 https://a ...
- Selenium定位二 --多个元素定位方法 和层级定位方法
定位多个元素: findElements()方法可以返回一个符合条件的元素List 组 如: public void hitUpdatePersonnel(WebDriver driver, int ...
- python版本selenium定位方式(不止八种哦)
除了大家熟知的8种定位方式之外 1.id定位:find_element_by_id(self, id_)2.name定位:find_element_by_name(self, name)3.class ...
- 使用selenium的方式获取网页中图片的链接和网页的链接,来判断是否是死链(二)
上一篇使用Java正则表达式来判断和获取图片的链接以及跳转的网址,这篇使用selenium的自带的API(getAttribute)来获取网页中指定的内容 实现内容:获取下面所有图片的链接地址以及跳转 ...
- js点击获取标签元素
14.数组去重 方法一:利用冒泡 function elementName(evt){ evt = evt|| window.event; // IE: window.event // IE用src ...
- selenium定位方式源码的存放位置
find_element方法源码存在位置 by定位方法
随机推荐
- An internal error occurred during: Initializing Java Tooling.
详细错误信息: An internal error occurred during: "Initializing Java Tooling". java.lang.NullPoin ...
- springboot配置SSL自签名证书
1.证书生成 每一个JDK或者JRE里都有一个工具,叫做:keytool,安装了jdk或jre之后,配置好JAVA环境之后,就可以直接在控制台使用该命令生成自签名证书: 在控制台输入: keytool ...
- Swoole入门到实战打造高性能赛事直播平台(完整版)
需要 的联系我,QQ:1844912514
- stream流操作List工具类
工作中操作List对于程序猿来说是"基本操作",为了更加便利,对JDK8的新特性stream流进行二次封装.话不多说,直接上代码 package com.mydemo; impor ...
- Tomcat不需要输入项目名便可访问项目(直接用域名或者ip)
一般需要输入项目名访问项目是怎么个方法呢? 直接将项目放在 tomcat 安装目录的 webapps 目录下, 然后在域名或者ip后面 域名(ip)/项目目录, 这样会显得比较麻烦. 那么应该怎么才可 ...
- springboot启动关闭脚本
springboot项目jar包启动,application.properties.jar包.shell脚本.static目录(静态页面和jar包分离)在同一目录下 [start.sh] #!/bin ...
- icpc 南昌邀请赛网络赛 Subsequence
题目链接:https://nanti.jisuanke.com/t/38232 就是判断输入是不是子序列 没想到贡献了将近十几次罚时..........可以说是菜的真实了 用cin cout超时了 改 ...
- BIZ中model.getSql源码分析
功能:根据model.xml文件中配置的sql,获取对应的动态sql结果. 实例代码:String sql1 = model.getSql(dao.dbMeta());String sql2 = mo ...
- 一道php笔试题
原文地址: http://www.walu.cc/php/a-bishiti.md 问题: 请找出下面代码中的问题,修复并优化. <?php //批量注册用户,每次>100个. //注册新 ...
- ubuntu配置ssh连接方式
pgadmin4 配置界面的password指的是数据库用户的密码, 不是服务器的密码. pg数据库 1.确保远程服务器开放相应端口.这个是在防火墙设置. 2.pg数据库服务器允许外部ip访问, 默认 ...