"""
需求:在注册A页面中用xpath定位账号A的input
xpath语法:
1.绝对路径 /
/html/body/form/div/fieldset/p[1]/input
2.相对路径 //
2.1 标签+属性定位
//标签名[@属性名=‘属性值’]
2.2 层级定位
//父标签名[@父属性名=‘父属性值’]/子标签名/... 不限于两层
2.3 索引
当一个父标签有多个相同的子标签时
//父标签名[@父属性名=‘父属性值’]/子标签名[索引值] 索引值从1开始
如果定位的是父标签下的第一个子标签,可以不加索引值
2.4 逻辑 and
当元素属性与其他属性有相同部分的时候,不能只有一个元素来定位,需要多个元素来定位。
//input[@name='user' and @class='login-test']
//标签名[@属性名1=‘属性值1’ and @属性名2=‘属性值2’]
"""
from selenium import webdriver
from time import sleep
import os
driver=webdriver.Chrome()
url="file:///"+os.path.abspath("练习页面/注册A.html")
driver.get(url)
driver.maximize_window()
sleep(3)
ele=driver.find_element_by_xpath("/html/body/form/div/fieldset/p[1]/input")
print("xpath-绝对定位:"+ele.get_attribute("outerHTML"))
ele=driver.find_element_by_xpath("//input[@placeholder='账号A']")
print("xpath-标签+属性定位:"+ele.get_attribute("outerHTML"))
ele=driver.find_element_by_xpath("//p[@id='p1']/input")
print("xpath-层级定位:",ele.get_attribute("outerHTML"))
driver.quit()