Selenium(一):八大元素定位

embedded/2024/9/23 14:36:28/

元素定位八大方法

1、find_element_by_id 通过id定位

find_element(By.ID,"kw")  #建议使用

2、find_element_by_name 通过标签名定位

find_element(By.NAME,"wd")  #建议使用

3、find_element_link_text 通过链接文本定位

find_element(By.LINK_TEXT,"百度首页")  #建议使用

4、find_element_partial_link_text 通过部分链接文本定位

find_element(By.PARTIAL_LINK_TEXT,"度首")  #建议使用

5、find_element_by_xpath 通过xpath定位

find_element(By.XPATH,'//*[@id="kw"]')  #建议使用

6、find_element_by_tag_name 通过标签名定位

find_element(By.TAG_NAME,'input')  #建议使用

7、find_element_by_css_selector 通过css选择器定位

find_element(By.CSS_SELECTOR,"#s-top-left > a:nth-child(7)")  #建议使用

8、find_element_by_class_name 通过css class定位

find_element(By.CLASS_NAME,"s_ipt")  #建议使用

find_element() 中 类型为空,默认为By.ID

from selenium import webdriver
from selenium.webdriver.common.by import By
class TestCase(object):def __init__(self):self.driver = webdriver.Chrome()  # from .chrome.webdriver import WebDriver as Chrome  # noqaself.driver.maximize_window()self.driver.get("https://www.baidu.com/")def test_id(self):elementId = self.driver.find_element(By.ID,"kw").send_keys("selenium")  #根据ID定位  ID是唯一的def test_name(self):#elementName = self.driver.find_element_by_name("wd")elementName = self.driver.find_element(By.NAME,"wd")   #根据Name定位,若存在多个相同name,会返回第一个def test_link_text(self):self.test_id()#self.driver.find_element_by_link_text("百度首页").click()self.driver.find_element(By.LINK_TEXT,"百度首页").click()  # 根据 Link_Text定位(链接类文本)def test_partial_link_text(self):   #部分的链接类文本self.test_id()self.driver.find_element(By.PARTIAL_LINK_TEXT,"度首").click()def test_xpath(self):self.driver.find_element(By.XPATH,'//*[@id="kw"]').send_keys("selenium")def test_tag_name(self):input = self.driver.find_element(By.TAG_NAME,'input')print(input) #<selenium.webdriver.remote.webelement.WebElement (session="371459cca6375285450f39039bf5bb32", element="f.74336247EAF5E2710B160F4F13F43681.d.5EC84632664EB0B7AF3D39F7775B5967.e.14")>def test_css_selector(self):self.driver.find_element(By.CSS_SELECTOR,"#s-top-left > a:nth-child(7)").click()def test_class_name(self):self.driver.find_element(By.CLASS_NAME,"s_ipt").send_keys("selenium")
if __name__ == '__main__':case =TestCase()#case.test_id()#case.test_name()#case.test_link_text()#case.test_partial_link_text()#case.test_xpath()#case.test_tag_name()#case.test_css_selector()case.test_class_name()

http://www.ppmy.cn/embedded/9782.html

相关文章

centos常用命令

文章目录 Linux常用命令目录操作命令文件操作命令系统操作命令进程管理命令软件包管理命令其他常用命令 Linux常用命令 CentOS是一款广泛使用的Linux发行版&#xff0c;它提供了大量的命令和工具&#xff0c;帮助管理员和用户执行各种系统操作。以下是一些CentOS中常用的命令&…

电商api接口进行数据采集获取多平台商品价格

在电商运营中&#xff0c;从品牌角度来看&#xff0c;品牌方通过接口进行数据采集&#xff0c;获取多渠道商品价格信息的这一行为&#xff0c;能为品牌方带来诸多好处&#xff1a; 及时准确&#xff1a;实时电商数据采集API接口 能为品牌提供实时数据&#xff0c;这意味着企业…

密钥密码学(二)

原文&#xff1a;annas-archive.org/md5/b5abcf9a07e32fc6f42b907f001224a1 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第十章&#xff1a;可变长度分数化 本章涵盖 基于摩尔斯电码的密码 混合字母和双字母 可变长度二进制码字 基于文本压缩的密码 本章涵盖…

深度图转点云

一、理论分析 二、其他分析 1、相机内参 相机内参主要是四个参数fx,fy,u0,v0。要明白相机内参就是相机内部参数&#xff0c;是参考像素坐标系而言&#xff0c;有了这个前提&#xff0c;这四个参数也就很好理解了。 &#xff08;1&#xff09;首先&#xff0c;。其中F是相机的…

FPGA - ZYNQ 基于Axi_Lite的PS和PL交互

前言 在FPGA - ZYNQ 基于EMIO的PS和PL交互中介绍了ZYNQ 中PS端和PL端交互的开发流程&#xff0c;接下来构建基于基于Axi_Lite的PS和PL交互。 开发流程 Axi_Lite从机 在FPGA - AXI4_Lite&#xff08;实现用户端与axi4_lite之间的交互逻辑&#xff09;中&#xff0c;详解介绍…

回文串中篇

看这篇文章之前&#xff0c;可以先看看回文串首篇。这次再分享三个关于回文串的题。 最长回文子串 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。 示例 1&#xff1a; 输入&#xff1a;s “babad” 输出&#xff1a;“bab” 解释&#xff1a;“aba” 同…

设计模式|代理模式(Proxy Pattern)

文章目录 什么是代理模式举例结构优缺点优点缺点代码示例与代理模式相近的设计模式什么是代理模式 代理模式(Proxy Pattern)是一种结构型设计模式,它允许你提供一个间接访问对象的方式,以控制对对象的访问。这种模式通常在不改变原始类代码的情况下,添加一些额外的逻辑或…

【操作系统】——死锁

基础知识 一个进程需要向一个进程传递数据&#xff0c;后面的进程必须等到前面的进程到达才能继续运行&#xff0c;这是进程间的一种次序关系。称为同步 在引入线程的系统中&#xff0c;进程内的多个线程可以并发或并行运行 遇到问题&#xff1a;对资源不加限制地分配可能导致…