测试工程师之web自动化测试selenium

环境搭建

  1. 安装Python3.7.3
  2. 安装Firefox69.0.2以及浏览器驱动;安装Chrome77.0.3865.90以及浏览器驱动
  3. 安装selenium3.0

selenium API(一、基础操作)

# 导入webdriver
from selenium import webdriver
import time

# 创建一个浏览器对象
driver = webdriver.Chrome()

# 设置全屏
driver.maximize_window()

# 获取当前浏览器尺寸
# size = driver.get_window_size()
# print(size)

# 设置浏览器尺寸
driver.set_window_size(400, 400)
size = driver.get_window_size()
print(size)

# print(dir(driver))

# 获取浏览器位置
position = driver.get_window_position()
print(position)

# 设置浏览器位置
driver.set_window_position(100, 200)

# 访问百度
driver.get('https://www.hao123.com/')
# 显示当前的页面标题
print(driver.title)
# 显示当前的url
print(driver.current_url)
time.sleep(2)

# 访问hao123
driver.get('http://www.baidu.com')
# 显示当前的页面标题
print(driver.title)
# 显示当前的url
print(driver.current_url)

# 后退操作
driver.back()
# 显示当前的页面标题
print(driver.title)
# 显示当前的url
print(driver.current_url)
time.sleep(2)

# 前进
driver.forward()
# 显示当前的页面标题
print(driver.title)
# 显示当前的url
print(driver.current_url)
time.sleep(2)

# 截图
# 自动写文件
driver.get_screenshot_as_file('baidu.jpg')

# 自己写文件
data = driver.get_screenshot_as_png()
with open('baidu2.jpg', 'wb') as f:
    f.write(data)

# 关闭浏览器
time.sleep(3)
driver.close()
driver.quit()

selenium API(二、元素的八种定位方式和基础操作)

在这里插入图片描述

# 导入webdriver
from selenium import webdriver
import time

# 创建一个浏览器对象
driver = webdriver.Chrome()

# 访问百度
driver.get('https://www.baidu.com/')
time.sleep(2)

# 定位到搜索框
# 1. id定位
el_input = driver.find_element_by_id('kw')
# 2. name定位
# el = driver.find_element_by_name('wd')
# 3. class定位
# el = driver.find_element_by_class_name('s_ipt')
# 4. css选择器定位
# el = driver.find_element_by_css_selector('#kw')
# 5. xpath定位
# el = driver.find_element_by_xpath('//*[@id="kw"]')

el_input.send_keys('58同城')
time.sleep(2)

# 定位到‘百度一下’按钮
el_click = driver.find_element_by_id('su')
el_click.click()
time.sleep(2)

el_58 = driver.find_element_by_xpath('//*[@id="1"]/h3/a[1]')
el_58.click()
time.sleep(2)

el_rent = driver.find_element_by_tag_name('pc_home_essc')
el_rent.click()

# 关闭浏览器
time.sleep(3)
driver.close()
driver.quit()

selenium API(三、高级操作)

selenium API(四、元素操作的定位和封装)

# 导入webdriver
from selenium import webdriver
import time


class Common(object):
    def __init__(self):
        self.driver = webdriver.Chrome()
        self.driver.maximize_window()

    def open_url(self, url):
        self.driver.get(url)
        self.driver.implicitly_wait(3)

    def locateElement(self, locate_type, value):
        el = None
        if locate_type == 'id':
            el = self.driver.find_element_by_id(value)
        elif locate_type == 'name':
            el = self.driver.find_element_by_name(value)
        elif locate_type == 'class':
            el = self.driver.find_element_by_class_name(value)
        elif locate_type == 'tag':
            el = self.driver.find_element_by_tag_name(value)
        elif locate_type == 'text':
            el = self.driver.find_element_by_link_text(value)
        elif locate_type == 'partial':
            el = self.driver.find_element_by_partial_link_text(value)
        elif locate_type == 'xpath':
            el = self.driver.find_element_by_xpath(value)
        elif locate_type == 'css':
            el = self.driver.find_element_by_css_selector(value)

        return el

    def click(self, locate_type, value):
        el = self.locateElement(locate_type, value)
        el.click()

    def input_data(self, locate_type, value, data):
        el = self.locateElement(locate_type, value)
        el.send_keys(data)

    def get_text(self, locate_type, value):
        el = self.locateElement(locate_type, value)
        return el.text

    def get_attr(self, locate_type, value, data):
        el = self.locateElement(locate_type, value)
        el.get_attribute(data)

    def close_driver(self):
        self.driver.close()

    def __del__(self):
        self.driver.quit()


# 自身调用,即运行;被调用,不运行
if __name__ == '__main__':
    com = Common()
    com.open_url('http://www.baidu.com')
    com.input_data('id', 'kw', 'selenium')
    com.click('id', 'su')
    time.sleep(3)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值