selenium3 web自动化测试框架 :页面基础操作、元素定位方法封装、页面操作方法封装
发布日期:2021-04-30 21:10:51 浏览次数:105 分类:精选文章

本文共 4628 字,大约阅读时间需要 15 分钟。

???????????Web?????????????????????????Selenium????Web????????????????????????????????????????

????????

?????????????????Selenium??????????????????????

1. ??????

?? title_contains ????????????????????????????????????"?????????"?

from selenium.webdriver.support import expected_conditions as EC
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
assert EC.title_contains(driver, "?????????")
driver.quit()

2. ???????

??????????????? WebDriverWait ??? expected_conditions ????????????????????????????

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
driver = webdriver.Chrome()
driver.get("http://www.5itest.cn/register")
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//*[@id="register_email"]')))
driver.quit()

3. ?????????

?? get_attribute ??????????????????????????????? send_keys ???????????????

from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("http://www.5itest.cn/register")
email_element = driver.find_element_by_xpath('//*[@id="register_email"]')
print(email_element.get_attribute("placeholder"))
email_element.send_keys("test@163.com")
driver.quit()

??????????

???????????????????? random ???????????????

import random
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.5itest.cn/register")
data_email = ''.join(random.sample("123456789abcdefg", 6)) + "@163.com"
data_name = ''.join(random.sample("AaBbCcDdEeFf", 4))
driver.find_element_by_xpath('//*[@id="register_email"]').send_keys(data_email)
driver.find_element_by_xpath('//*[@id="register_nickname"]').send_keys(data_name)
driver.quit()

???????

??????????????????????OCR????????????Tesseract OCR????

import pytesseract
from PIL import Image
img = Image.open("F:/python_stack/python_autotest/num_code.png")
text = pytesseract.image_to_string(img)
print(text)

????????Tesseract OCR?????? pip install pytesseract?

????????

????????????????????????????????????? ConfigParser ???

import configparser
class ReadIni:
def __init__(self, filename=None, node=None):
self.filename = filename or "F:/python_stack/python_autotest/config/LocalElement.ini"
self.node = node or "RegisterElement"
self.cf = self.load_ini(self.filename)
def load_ini(self, filename):
cf = configparser.ConfigParser()
cf.read(filename)
return cf
def get_value(self, key):
return self.cf.get(self.node, key)
if __name__ == "__main__":
test = ReadIni()
print(test.get_value("elemant_pwd"))

?????????

???????????????????????????????

from selenium import webdriver
from util.ReadIni import ReadIni
class FindElement:
def __init__(self, driver):
self.driver = driver
def get_element(self, key):
readini = ReadIni()
data = readini.get_value(key)
by, value = data.split(">", 1)
try:
if by == "id":
return self.driver.find_element_by_id(value)
elif by == "name":
return self.driver.find_element_by_name(value)
elif by == "className":
return self.driver.find_element_by_class_name(value)
else:
return self.driver.find_element_by_xpath(value)
except:
return None
if __name__ == "__main__":
driver = webdriver.Chrome()
test = FindElement(driver)
print(test.get_element("element_email"))

??????????

?????????????????????????????

from util.find_elemnet import FindElement
from selenium import webdriver
class RegisterFunction:
def __init__(self, url):
self.driver = self.get_driver(url)
def get_driver(self, url):
driver = webdriver.Chrome()
driver.get(url)
driver.maximize_window()
return driver
def send_user_info(self, key, data):
self.get_user_element(key).send_keys(data)
def get_user_element(self, key):
find_element = FindElement(self.driver)
user_element = find_element.get_element(key)
return user_element
def main(self):
self.send_user_info("element_email", "test@163.com")
self.send_user_info("elemant_name", "admin")
self.send_user_info("elemant_pwd", "111111")
if __name__ == "__main__":
url = "http://www.5itest.cn/register"
register = RegisterFunction(url)
register.main()

???????

????????????????????????????????????????????????????

????????

????????????????????????????????1?2???????????????????????????????????????????????

上一篇:高性能web建站规则(外部js和css通常更好一些)
下一篇:让学习让测试更精彩,让测试让生命更精彩

发表评论

最新留言

关注你微信了!
[***.104.42.241]2026年06月05日 21时23分03秒