Selenium05-NAME定位

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')
# 元素操作
# 输入电子邮件地址:779146@qq.com
user_email.send_keys('779146@qq.com')
# 输入主题: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定位
posted @ 2022-12-08 20:53  暄总-tester  阅读(121)  评论(0)    收藏  举报