Selenium(一):八大元素定位

元素定位八大方法

1、find_element_by_id 通过id定位

find_element(By.ID,"kw")  #建议使用

2、find_element_by_name 通过标签名定位

find_element(By.NAME,"wd")  #建议使用

3、find_element_link_text 通过链接文本定位

find_element(By.LINK_TEXT,"百度首页")  #建议使用

4、find_element_partial_link_text 通过部分链接文本定位

find_element(By.PARTIAL_LINK_TEXT,"度首")  #建议使用

5、find_element_by_xpath 通过xpath定位

find_element(By.XPATH,'//*[@id="kw"]')  #建议使用

6、find_element_by_tag_name 通过标签名定位

find_element(By.TAG_NAME,'input')  #建议使用

7、find_element_by_css_selector 通过css选择器定位

find_element(By.CSS_SELECTOR,"#s-top-left > a:nth-child(7)")  #建议使用

8、find_element_by_class_name 通过css class定位

find_element(By.CLASS_NAME,"s_ipt")  #建议使用

find_element() 中 类型为空,默认为By.ID

from selenium import webdriver
from selenium.webdriver.common.by import By
class TestCase(object):
    def __init__(self):
        self.driver = webdriver.Chrome()  # from .chrome.webdriver import WebDriver as Chrome  # noqa
        self.driver.maximize_window()
        self.driver.get("https://www.baidu.com/")
    def test_id(self):
        elementId = self.driver.find_element(By.ID,"kw").send_keys("selenium")  #根据ID定位  ID是唯一的
    def test_name(self):
        #elementName = self.driver.find_element_by_name("wd")
        elementName = self.driver.find_element(By.NAME,"wd")   #根据Name定位,若存在多个相同name,会返回第一个
    def test_link_text(self):
        self.test_id()
        #self.driver.find_element_by_link_text("百度首页").click()
        self.driver.find_element(By.LINK_TEXT,"百度首页").click()  # 根据 Link_Text定位(链接类文本)
    def test_partial_link_text(self):   #部分的链接类文本
        self.test_id()
        self.driver.find_element(By.PARTIAL_LINK_TEXT,"度首").click()
    def test_xpath(self):
        self.driver.find_element(By.XPATH,'//*[@id="kw"]').send_keys("selenium")
    def test_tag_name(self):
        input = self.driver.find_element(By.TAG_NAME,'input')
        print(input) #<selenium.webdriver.remote.webelement.WebElement (session="371459cca6375285450f39039bf5bb32", element="f.74336247EAF5E2710B160F4F13F43681.d.5EC84632664EB0B7AF3D39F7775B5967.e.14")>
    def test_css_selector(self):
        self.driver.find_element(By.CSS_SELECTOR,"#s-top-left > a:nth-child(7)").click()
    def test_class_name(self):
        self.driver.find_element(By.CLASS_NAME,"s_ipt").send_keys("selenium")
if __name__ == '__main__':
    case =TestCase()
    #case.test_id()
    #case.test_name()
    #case.test_link_text()
    #case.test_partial_link_text()
    #case.test_xpath()
    #case.test_tag_name()
    #case.test_css_selector()
    case.test_class_name()

相关推荐

  1. Selenium):元素定位

    2024-04-23 06:36:03       33 阅读
  2. 元素定位方法

    2024-04-23 06:36:03       33 阅读
  3. selenium无法定位元素问题

    2024-04-23 06:36:03       65 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-23 06:36:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-23 06:36:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-23 06:36:03       87 阅读
  4. Python语言-面向对象

    2024-04-23 06:36:03       96 阅读

热门阅读

  1. LeetCode 438.找到字符串中所有字母异位词

    2024-04-23 06:36:03       39 阅读
  2. P4 vscode 插件

    2024-04-23 06:36:03       35 阅读
  3. 开发一款游戏,需要注意哪些问题?

    2024-04-23 06:36:03       45 阅读
  4. DBA搞钱之路

    2024-04-23 06:36:03       41 阅读
  5. Unity实现一个简单的状态机Demo

    2024-04-23 06:36:03       33 阅读
  6. 为什么删除node_modules文件夹很慢

    2024-04-23 06:36:03       32 阅读