Selenium(一):八大元素定位

发布于:2024-04-22 ⋅ 阅读:(146) ⋅ 点赞:(0)

元素定位八大方法

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()

网站公告

今日签到

点亮在社区的每一天
去签到