2-元素的八大基本定位方式

八大基本定位方式

  1. by_id
  2. by_name
  3. by_link_text
  4. by_tag_name
  5. by_partial_link_text
  6. by_class_name
  7. by_xpath
  8. by_css_selector

使用优先级:

首先依次考虑:ID、name、CSS (常用)、Xpath
一般不用:link_text、class_name、tag_name

示例

from selenium import webdriver

browser = webdriver.Chrome()
browser.get('file:///D:/TestSoft/Selenium/test.html')

# 1、根据id定位,只返回找到的第一个元素
ele = browser.find_element_by_id('id_abc')
print(ele.text)  # 获取元素文本值

# 2、根据name定位,只返回找到的第一个元素
ele = browser.find_element_by_name('name_abc')
print(ele.text)

# 3、根据链接文本进行定位,只返回找到的第一个元素
ele = browser.find_element_by_link_text("点击进入百度")
ele.click()

# 4、根据tag_name定位,只返回找到的第一个元素
ele = browser.find_element_by_tag_name("span")
print(ele.text)

# 5、模糊匹配,只返回找到的第一个元素
ele = browser.find_element_by_partial_link_text('百度')
ele.click()

# 6、根据class进行定位,只返回找到的第一个元素
ele = browser.find_element_by_class_name("class_name")
print(ele.text)

# 7、根据xpath进行定位,只返回找到的第一个元素
ele = browser.find_element_by_xpath("/html/body/div/ul/li[2]")
print(ele.text)

# 8、根据css进行定位,只返回找到的第一个元素
ele = browser.find_element_by_css_selector("body > div > ul > li:nth-child(2)")
print(ele.text)

browser.quit() # 退出浏览器

附件

test.html文件内容:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<p id="id_abc">获取指定id标签内容</p>
<a name="name_abc">获取指定name标签内容</a>
<br>
<a href="https://www.baidu.com">点击进入百度</a>
<br>
<span>span标签</span>
<br>
<span class="class_name">获取指定class标签内容</span>
<br>
<div>
    <ul>
        <li>1、食品</li>
        <li>2、饮料</li>
    </ul>
</div>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/weixin_45128456/article/details/113803040