selenium.元素定位方式

定位元素的方式主要有以下八种:

  1. 通过id定位元素:find_element_by_id("id_vaule")
  2. 通过name定位元素:find_element_by_name("name_vaule")
  3. 通过tag_name定位元素:find_element_by_tag_name("tag_name_vaule")
  4. 通过class_name定位元素:find_element_by_class_name("class_name")
  5. 通过css定位元素:find_element_by_css_selector()
  6. 通过xpath定位元素:find_element_by_xpath("xpath")
  7. 通过link:find_element_by_link_text("text_vaule")
  8. 通过find_element_by_partial_link_text()

以百度首页面为例做个搜索selenium的demo,演示五个比较常用的定位方式

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()
driver.implicitly_wait(10)   #隐形等待
driver.get(‘https://www.baidu.com/‘)
sleep(1)

#以五种定位方式定位到百度首页的搜索输入框
kw_find = driver.find_element_by_id(‘kw‘)
#kw_find= driver.find_element_by_class_name(‘s_ipt‘)
#kw_find= driver.find_element_by_name(‘wd‘)
#kw_find = driver.find_element_by_xpath(‘//*[@id="kw"]‘)
#kw_find = driver.find_element_by_css_selector(‘#kw‘) #id用#kw,class用.s_ipt ,与css的简写方式相同

#send_keys() 是selenium自带的方法,用来输入文本
kw_find.send_keys(‘selenium‘)

#使用id定位方式定位到搜索按钮
su_find = driver.find_element_by_id(‘su‘)

#click() 是selenium自带的方法,用来点击定位的元素
su_find.click()

sleep(1)
driver.quit()

同样用百度首页的的其中一个hao123来练习 link_text和partial_link_text定位方式

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()
driver.implicitly_wait(10)   #隐形等待
driver.get(‘https://www.baidu.com/‘)
sleep(1)

#定位hao123页面的超链接并点击
hao123_find = driver.find_element_by_link_text(‘hao123‘) #这个方法比较直接,即通过超文本链接上的文字信息来定位元素

hao123_find = driver.find_element_by_partial_link_text(‘hao1‘) #这个方法是上一个方法的扩展。当你不能准确知道超链接上的文本信息或者只想通过一些关键字进行匹配时,可以使用这个方法来通过部分链接文字进行匹配
hao123_find.click() sleep(1) driver.quit()

 

还有一种是 tag_name 定位,此方式可以通过元素的标签名称来查找元素,但是一般WEB网站的标签名都是会重复的所有用的并不太方便。

但是可以配合循环输出标签的属性。

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()
driver.get(‘https://www.baidu.com‘)
for img in driver.find_elements_by_tag_name("img"):
    print(img.text)
    print(img.size)
    print(img.tag_name)

sleep(2)
driver.quit()

  

运行发现没有图片名称打印出来,说明百度首页,所有图片都没有给出text这个属性。

原文地址:https://www.cnblogs.com/youngleesin/p/10447907.html

时间: 2024-11-10 10:47:02

selenium.元素定位方式的相关文章

Selenium元素定位学习教程

无论哪一种自动化测试的驱动框架(基于B/S,桌面应用,还是手机App).都应当具有一套优秀的元素定位技术.通常的自动化测试流程也可以简单的归结为是一个从被测试程序中识别或是定位元素以及执行操作和验证元素的过程.这一篇我们就一起学习Selenium以及它是如何定位DOM元素的.本文将会介绍如下内容: Selenium DOM 主要的定位方式. Selenium 如何扩展元素定位方式. 辅助浏览器工具 (一)Selenium DOM主要定位方式 上一篇中,我们介绍了WebDriver和 WebEle

python selenium系列(二)元素定位方式

一 前言 元素定位,是操作元素的第一步,也是WebUI自动化的难点和核心. 二 元素定位方法 selenium提供了内置的方法完成对待操作元素的定位,主要分为8类,其中,每类又可细分为定位单个元素和定位多个元素,另外还提供了2个私有方法.详细如下: 定位单个元素 ·         find_element_by_id ·         find_element_by_name ·         find_element_by_xpath ·         find_element_by_

selenium8中元素定位方式

Selenium对网页的控制是基于各种前端元素的,在使用过程中,对于元素的定位是基础,只有准去抓取到对应元素才能进行后续的自动化控制,我在这里将对各种元素定位方式进行总结归纳一下. 这里将统一使用百度首页(www.baidu.com)进行示例,f12可以查看具体前端代码.WebDriver8种基本元素定位方式find_element_by_id() 采用id属性进行定位.例如在百度页面中输入关键字 Selenium 进行搜索.百度部分关键源码如下:<span class="bg s_ipt

selenium+python之元素定位方式介绍

网页自动化测试最基本的要求就是要定位到各个元素,然后才能对该元素进行各种操作(输入,点击,清除,提交等),所以今天来总结下Selenuim+Python最基本的几种定位方式及实例说明, 以百度搜索输入框为例,用谷歌浏览器具体说明各个定位方式的用法. 1.导入selenium包的webdriver方法 输入 from selenium import webdriver 2.从 time 模块中引入sleep函数,使用sleep函数可以让程序休眠 输入 from time import sleep

Selenium系列(一) - 8种元素定位方式的详细解读

安装Selenium和下载Driver 安装selenium pip3 install  selenium -i http://pypi.douban.com/simple --trusted-host pypi.douban.com 下载Driver 打开:http://npm.taobao.org/mirrors/chromedriver/ 找到自己Chrome对应的版本下载即可 访问百度的小Demo #!/usr/bin/env python # -*- coding: utf-8 -*-

selenium元素定位不到的解决方式

1.如果确信自己的元素的地址写的事正常的,但是就是没有反应的话可以试试切换Frame下 代码为: driver.switch_to.frame("mainFrame") 用完之后记得切换回原来的 driver.switch_to.default_content() 2.对xpath 和css元素定位不是很清楚的话,可以使用的firefox的工具,selenium IDE,通过脚本录制在导出,查看脚本文件,可以很快定位到元素的位置 3.有些元素在打开文件之后,需要一定的等待时间,可以加上

selenium元素定位大全

要做自动化,首先要了解页面结构,要了解页面结构,就要了解页面元素的定位方法 在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素. 常用的元素定位方法如下: 如何选择 定位方法 策略是:选择简单,稳定的定位方法. 1. 当页面元素有id属性的时候, 尽量使用id来定位. 没有的话,再选择其他定位方法 2. cssSelector 执行速度快, 推荐使用 3. 定位超链接的时候,可以考虑linkTe

selenium元素定位

1.元素定位 在本章中,我们将讨论 u 使用浏览器工具来检查页面中元素的结构 u 使用findElement方法定位元素 u 使用findElements方法来定位元素 u 定位链接 u 通过标签名称定位元素 u 使用CSS选择器定位元素 u 使用XPath定位元素 u 使用文本定位元素 u 使用高级CSS选择器定位元素 u 使用jQuery选择器 u 定位表格的行和列 u 定位表格中的子元素 1.1.介绍 成功的自动化GUI(图形用户界面)测试取决于从被测试的应用程序中识别和定位GUI元素,然

selenium元素定位不到之iframe

我们在使用selenium的18中定位方式的时候,有时会遇到定位不上的问题,今天我们就来说说导致定位不上的其中一个原因---iframe 问题描述:通过firebug查询到相应元素的id或name等,但在定位此元素的时候就是报错,提示: selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element 问题原因:元素定位不到 问题分析:通过firebug可以看到,但就是定位不到,这时候很有可能