首页 > 其他分享 >Selenium05-NAME定位

Selenium05-NAME定位

时间:2022-12-08 21:00:10浏览次数:35  
标签:定位 NAME Selenium05 driver element id import find

NAME定位

  • name属性指定元素的名称,在当前的HTML文档中可以不唯一

    <input type='text' name='username' size=25>
    <input type='password' name='password' size=25>
    
  • WebDriver提供的NAME定位就是通过元素的name属性值来查找目标元素,find_element()方法返回一个页面元素对象

    # 语法
    变量 = driver.find_element(By.NAME,"name属性值")
    # 示例
    username = driver.find_element(By.NAME,'username')
    password = driver.find_element(By.NAME,'password')
    

"""
	启动Firefox,打开前台登录页,完成登录操作,等待3秒,关闭浏览器
	输入用户名:peter
	输入密码:abc123
	点击"立即登录"按钮
"""
from selenium import webdriver
from time import sleep

from selenium.webdriver.common.by import By

driver = webdriver.Firefox() # 启动浏览器
driver.get('http://localhost/upload/user.php') # 打开前台登录页

# 定位元素
username = driver.find_element(By.NAME,'username') # 用户名文本框
password = driver.find_element(By.NAME,'password') # 密码文本框
submit = driver.find_element(By.NAME,'submit') # 立即登录按钮

# 操作元素
username.send_keys('peter') # 输入用户名 peter
password.send_keys('abc123') # 输入密码 abc123
submit.click() # 点击 立即登录 按钮

sleep(3) # 等待3秒
driver.quit() # 关闭浏览器
"""
	打开首页,输入搜索关键字100,点击搜索按钮
	等待两秒后,关闭浏览器
"""
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
driver = webdriver.Firefox() # 启动浏览器
driver.get('http://localhost/upload/index.php') # 打开首页
# 定位搜索输入文本框 keyword
keyword = driver.find_element(By.ID,'keyword')
# 定位搜索按钮
imageField = driver.find_element(By.NAME,'imageField')
# 输入100
keyword.send_keys('100')
imageField.click()
sleep(2) # 等待2秒
driver.quit() # 关闭浏览器
"""
	启动Firefox,打开ECshop前台留言板页
	输入电子邮件地址:
	输入主题:
	输入留言内容:
	等待3秒,关闭浏览器
"""
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
driver = webdriver.Firefox() # 启动浏览器
driver.get('http://localhost/upload/message.php') # 打开前台留言板
# 定位元素
user_email =driver.find_element(By.NAME,'user_email')
msg_title =driver.find_element(By.NAME,'msg_title')
msg_content =driver.find_element(By.NAME,'msg_content')
# 元素操作
# 输入电子邮件地址:[email protected]
user_email.send_keys('[email protected]')
# 输入主题:selenium课程
msg_title.send_keys('selenium课程')
# 输入留言内容:不好学但是得学会
msg_content.send_keys('不好学但是得学会')

sleep(3) # 等待2秒
driver.quit() # 关闭浏览器

ID与NAME注意

  • 如果有id属性的元素,尽量优先尝试使用ID定位
  • 如果没有id属性,有name属性,尝试使用NAME定位
  • 既有id属性又有name属性,优先使用ID定位
  • 如果有id属性,但是ID定位失败,那么调查是否每次打开网页时,目标元素的id属性值是否不同,或刷新网页后,id属性之后就发生了变化,如果是,我们id属性值就是动态id属性值,此时不建议使用id定位

标签:定位,NAME,Selenium05,driver,element,id,import,find
From: https://www.cnblogs.com/sean-test/p/16967284.html

相关文章

  • Selenium03-定位元素
    Web自动化测试核心问题Web应用程序的功能自动化(也称为UI自动化)测试的本质就是使用工具代替人工进行界面操作核心问题:如何识别(也叫做定位)要操作的页面元素识别后......
  • Selenium04-ID定位
    ID定位HTML语法中规定id属性在当前的HTML文档中必须是唯一的<inputtype='text'id='username'size=25><inputtype='password'id='password'size=25>WebDrive......
  • 生产环境上服务假死定位
    1.Docker容器里只有JRE,若用JVM工具分析需要JDK环境,由于jdk1.8.0_311版本报notfound,但使用jdk8u322-b06-alpine.zip版本处理却可以A.拷贝JDK文件到容器中docker c......
  • 定位
    1.相对定位:相对于原来自己的位置定位偏移之后,原来文档流的位置还会被占位。position:relative;2.绝对定位:(1)父级元素没有定位的时候,是相对于浏览器做绝对定位。(2)父......
  • jni项目创建出错 Can't determine type for tag '<macro name="m3_comp_bottom_app_ba
    看一下app目录下的build.gradle文件,将dependencies闭包下这两行implementation'androidx.appcompat:appcompat:1.5.1'implementation'com.google.android.material:m......
  • linux问题定位中ftrace和strace使用。
    最近在定位问题过程中,有些涉及到内核,有些涉及到用户面,有些是两则之间都有。通过咨询牛人,推荐ftrace使用。最后问题得到了解决,下面记录下ftrace和strace简单使用的介绍。......
  • Linux下重命名文件或文件夹(mv命令与rename命令)
    Linux下重命名文件或文件夹(mv命令与rename命令)-山高我为峰-博客园  https://www.cnblogs.com/liaojie970/p/6746331.html在Linux下重命名文件或目录,可以使用mv命......
  • 浅谈船舶岸电系统绝缘监测及故障定位需求及应用
     摘要:随着现代船舶发展,船舶电气化程度越来越高,船舶电站的的容量也越来越大,随之而来的是电网的绝缘问题更加复杂化。船舶电力系统一般采用IT系统,即不接地系统。由于电网是......
  • oracle 中的 DB_NAME、DB_DOMAIN、DB_UNIQUE_NAME--转
    ......
  • 2022-12-07 小程序滚动到指定位置【转载】
    //使用wx.createSelectorQuery()查询到需要滚动到的元素位置wx.createSelectorQuery().select('.bb4').boundingClientRect(res=>{//2.使用wx.get......