元素定位

元素定位

·有八大定位方法

1.ID定位‌
通过元素的id属性定位,这是最快且最直接的方式‌。

# 定位 <input id="username"> 元素
element = driver.find_element(By.ID, "username")

2.Name定位‌
使用元素的name属性值进行定位‌。

# 定位 <input name="email"> 元素
element = driver.find_element(By.NAME, "email")

3.Class Name定位‌
通过class属性值定位元素‌。

# 定位 <div class="button primary"> 元素
element = driver.find_element(By.CLASS_NAME, "button")
# 或者定位包含多个class的元素
element = driver.find_element(By.CLASS_NAME, "primary")

4.Tag Name定位‌
根据HTML标签名称(如input、div)定位,但实用性较低,因重复标签较多‌。

# 定位页面中的第一个 <input> 元素
element = driver.find_element(By.TAG_NAME, "input")
# 定位所有的 <a> 标签
elements = driver.find_elements(By.TAG_NAME, "a")

5.Link Text定位‌
针对超链接(a标签),通过完整文本内容定位‌。

# 定位 <a href="...">登录</a> 元素
element = driver.find_element(By.LINK_TEXT, "登录")

6.Partial Link Text定位‌
与Link Text类似,但支持超链接文本的部分匹配‌。

# 定位包含"登录"文本的链接
element = driver.find_element(By.PARTIAL_LINK_TEXT, "登录")

7.XPath定位‌
通过XML路径表达式定位元素,功能强大且支持复杂层级关系‌。

# 绝对路径定位
element = driver.find_element(By.XPATH, "/html/body/div/form/input")

# 相对路径定位
element = driver.find_element(By.XPATH, "//input[@id='username']")

# 复杂XPath定位
element = driver.find_element(By.XPATH, "//div[@class='form-group']//input[@type='text']")

8.CSS Selector定位‌
使用CSS选择器语法定位元素,灵活性高且兼容性强‌。

# 通过ID定位
element = driver.find_element(By.CSS_SELECTOR, "#username")

# 通过class定位
element = driver.find_element(By.CSS_SELECTOR, ".button")

# 通过属性定位
element = driver.find_element(By.CSS_SELECTOR, "input[type='password']")

# 复合选择器
element = driver.find_element(By.CSS_SELECTOR, "div.form-group input.username")

实际应用中,优先推荐ID、Name、Class等唯一属性定位,若元素无明确属性则采用XPath或CSS Selector‌。

tips:

如果找元素属性或者path困难时候,可以在审核元素F12中使用“Shift + Ctrl + C"定位要找的元素,右键复制相关Path即可
posted @ 2025-07-25 17:33  胡啊花瓜  阅读(11)  评论(0)    收藏  举报