UI自动化测试

进入命令提示面板输入指令 pip3 install selenium 下载 selenium

 

Edge浏览器驱动安装

1、使用管理员模式打开命令提示符输入

DISM.exe /Online /Add-Capability /CapabilityName:Microsoft.WebDriver~~~~0.0.1.0

2、Microsoft Edge Driver - Microsoft Edge Developer

下载对应版本解压,将.exe文件放入Python安装目录

 

 

进入Python控制台输入以下代码,打开浏览器则配置正常

from selenium import webdriver

driver = webdriver.Edge()

 

八类元素定位

分为两类:

  单个元素的定位

  多个元素的定位

from selenium import webdriver
from selenium.webdriver.common.by import By
import time as t


# 通过ID来定位
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.find_element_by_id("kw").send_keys("hello word")
t.sleep(5)
# 通过name来定位
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.find_element_by_name("wd").send_keys("hello word")
t.sleep(5)
# 通过class_name来定位
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.find_element_by_class_name("s_ipt").send_keys("hello word")
t.sleep(5)
# 通过xpath定位
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.find_element_by_xpath('//*[@id="kw"]').send_keys("hello word")
t.sleep(5)
# css定位
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.find_element_by_css_selector("#kw").send_keys("hello word")
t.sleep(5)
# LINK_TEXT精准
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.find_element_by_link_text("直播").click()
t.sleep(5)

# PARTIAL_LINK_TEXT模糊
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
driver.find_element_by_partial_link_text("播").click()
t.sleep(5)
# link_text和partial_link_text定位超链接标签
# 可以使用精准或模糊匹配,如果使用模糊匹配最好能使用可以唯一关键字;

# tag_name多个元素的定位方式
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
tag=driver.find_elements_by_tag_name("input")
tag[7].send_keys("admin")
t.sleep(5)
driver.quit()

 

元素定位方法的案例实战(网易,sina邮箱)

# sina邮箱的注册信息
driver = webdriver.Chrome()
# 最大化浏览器
driver.maximize_window()
driver.get("https://mail.sina.com.cn/register/regmail.php")
# 邮箱地址
driver.find_element_by_name("email").send_keys("admin")
t.sleep(3)
# 密码,确认密码
driver.find_element_by_name("psw").send_keys("asdfghjkl")
driver.find_element_by_name("npsw").send_keys("asdfghjkl")
t.sleep(3)
# 手机号码
driver.find_element_by_name("phonenumber").send_keys("12345678901")
t.sleep(3)
driver.quit()

# 163邮箱的注册信息
driver = webdriver.Chrome()
# 最大化浏览器
driver.maximize_window()
driver.get("https://mail.163.com/register/index.htm?from=163mail&utm_source=163mail")
# 邮箱地址
driver.find_element_by_id("username").send_keys("admin")
t.sleep(3)
# 密码
driver.find_element_by_id("password").send_keys("asdfghjkl")
t.sleep(3)
# 手机号码
driver.find_element_by_id("phone").send_keys("12345678901")
t.sleep(3)
driver.quit()

 

结合函数对元素定位方法封装

def ID(driver, content):
    return driver.find_element_by_id(content)


def name(driver, content):
    return driver.find_element_by_name(content)


def className(driver, content):
    return driver.find_element_by_class_name(content)


def Xpath(driver, content):
    return driver.find_element_by_xpath(content)


def tagName(driver, content, index):
    return driver.find_elements_by_tag_name(content)[index]


def css(driver, content):
    return driver.find_element_by_css_selector(content)


def link_text(driver, content):
    return driver.find_element_by_link_text(content)


def PARTIAL_LINK_TEXT(driver, content):
    return driver.find_element_by_partial_link_text(content)

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")

ID(driver, "kw").send_keys("id")
# name(driver, "wd").send_keys("name")
# className(driver, "s_ipt").send_keys("class name")
# Xpath(driver, '//*[@id="kw"]').send_keys("xpath")
# css(driver, "#kw").send_keys("css")
# link_text(driver, "直播").click()
# PARTIAL_LINK_TEXT(driver, "播").click()
# tagName(driver, "input", 7).send_keys("tag name")

t.sleep(5)
driver.quit()

 

webdriver的浏览器属性的方法应用

  driver.find_element_by_class_name:通过class样式的名称获取想要的内容
  dirver.find_element_by_id:通过id的名称获取想要的内容
  driver.find_element_by_link_text:通过输入的文本内容获取对应的链接
  driver.find_element_by_css_selector:通过css样式的名称获取想要的内容
  driver.find_element_by_tag_name:通过标签的的名称获取想要的内容
  driver.find_element_by_xpath:用过某个标签的xpath路径获取想要的内容
  driver.current_url:用于获得当前页面的URL
  driver.title:用于获取当前页面的标题
  driver.page_source:用于获取页面html源代码
  driver.current_window_handle:用于获取当前窗口句柄
  driver.window_handles:用于获取所有窗口句柄
  driver.get(url):浏览器加载url。

# webdriver操作浏览器的属性
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
print("获取当前地址:", driver.current_url)
print("获取title:", driver.title)
print("获取当前页面源码:", driver.page_source)
t.sleep(3)
driver.get("https://www.sina.com.cn")
t.sleep(3)
# 后退
driver.forward()
t.sleep(3)
driver.back()
t.sleep(3)
print("获取执行数据浏览器:", driver.name)
t.sleep(5)
driver.quit()

 

posted @ 2021-08-09 16:41  星德川  阅读(63)  评论(0)    收藏  举报