【Selenium核心技术篇】selenium八种元素定位方法

前言

一直想学习自动化测试,但是都没行动,业余时间学习零零碎碎并记录20210408

【Selenium核心技术篇】包含以下内容:

  1. Selenium实现元素定位(8种)
  2. Selenium WebDriver
  3. Selenium WebElement
  4. Selenium操作from表单
  5. Selenium操作checkbox和radiobutton
  6. Selenium操作下拉列表
  7. Selenium处理弹框
  8. Selenium三种等待方式
  9. Selenium等待条件
  10. Selenium鼠标和键盘事件
  11. Selenium执行JavaScript脚本
  12. Selenium屏幕截图
  13. Selenium之frame的切入和切出

selenium八种元素定位方法用python语言表示为:

  1. find_element_by_id():id定位
  2. find_element_by_name():name定位
  3. find_element_by_class_name():class定位。
  4. find_element_by_xpath():xpath定位。在实际工作中,有时候我们要定位的元素并没有id,name,class属性,或者多个元素的这些属性值都相同,又或者刷新页面,这些属性值都会变化。那么这个时候我们就只能通过xpath或者CSS来定位了。
  5. find_element_by_link_text():link定位。此种方法是专门用来定位文本链接的,比如百度首页右上角有“新闻”,“hao123”,“地图”等链接
  6. find_element_by_partial_link_text():partial_link定位。有时候一个超链接的文本很长很长,我们如果全部输入,既麻烦,又显得代码很不美观,这时候我们就可以只截取一部分字符串,用这种方法模糊匹配了。
  7. find_element_by_tag_name():tag定位,如果懂HTML知识,我们就知道HTML是通过tag来定义功能的,比如input是输入,table是表格,等等...。每个元素其实就是一个tag,一个tag往往用来定义一类功能。
  8. find_element_by_css_selector():CSS定位。这种方法相对xpath要简洁些,定位速度也要快些,但是学习起来会比较难理解。
    # 通过CSS定位搜索框,并输入selenium
    driver.find_element_by_css_selector('#kw').send_keys('selenium')

实操

from selenium import webdriver
from time import sleep
# --原型--------------------------------
# driver = webdriver.Chrome()
# driver.get('http://wwww.baidu.com')
# driver.maximize_window()
# sleep(1)
#
# element = driver.find_element_by_id('kw')
# element.send_keys('留白')
# print(type(element))
#
# driver.find_element_by_id('su').click()
# sleep(3)
# driver.close()
#----------------------------------------


# 封装如下
class TestCase(object):
    def __init__(self):
        #self全局
        self.driver = webdriver.Chrome()
        self.driver.get('http://wwww.baidu.com')
        self.driver.maximize_window()
        sleep(1)

    def test_id(self):
        element = self.driver.find_element_by_id('kw')
        element.send_keys('留白')
        print(type(element))

        self.driver.find_element_by_id('su').click()
        sleep(3)
        self.driver.quit()

    def test_name(self):
        element = self.driver.find_element_by_name('wd')
        element.send_keys('留白')
        print(type(element))

        self.driver.find_element_by_id('su').click()
        sleep(3)
        self.driver.quit()

    def test_linktext(self):
        self.test_id()
        self.driver.find_element_by_link_text('百度首页').click()
        sleep(3)
        self.driver.quit()

    def test_partial_link_text(self):
        self.test_id()
        self.driver.find_element_by_partial_link_text('百度首页').click()
        sleep(3)
        self.driver.quit()

    def test_xpath(self):
        self.driver.find_element_by_xpath('//*[@id="kw"]').send_keys('留白')
        self.driver.find_element_by_id('su').click()
        sleep(3)
        self.driver.quit()
# 一般不用
    def test_tag(self):
        input = self.driver.find_element_by_tag_name('input')[0]
        print(input)
        self.driver.quit()

    def test_css_selector(self):
        self.driver.find_element_by_css_selector('#kw').send_keys('留白')
        self.driver.find_element_by_id('su').click()
        sleep(3)
        self.driver.quit()

    def test_class_name(self):
        self.driver.find_element_by_class_name('s_ipt').send_keys('留白')
        self.driver.find_element_by_id('su').click()
        sleep(3)
        self.driver.quit()

    def test_all(self):
        self.driver.find_element(value='kw').send_keys('留白')
        self.driver.find_element_by_id('su').click()
        sleep(3)
        self.driver.quit()

if __name__ == '__main__':
    case = TestCase()
    # case.test_id()
    # case.test_name()
    # case.test_linktext()
    # case.test_partial_link_text()
    # case.test_xpath()
    # case.test_tag()
    # case.test_css_selector()
    # case.test_class_name()
    case.test_all()

问题记录

第一次封装,代码如下:

【Selenium核心技术篇】selenium八种元素定位方法_第1张图片

报错:

【Selenium核心技术篇】selenium八种元素定位方法_第2张图片原因,第21行

def __int__(self):

漏了一个i,应为

def __init__(self):

我找个半个多小时也不知道哪里错了,e mmm,被自己蠢哭

永不放弃,总有希望在前面等待!”送给自己,也送给正在阅读文章的博友们~

你可能感兴趣的:(selenium,定位)