# -*- coding:utf-8 -*- # date = 2019/7/25 # name = "yedeng" # project_name = gddn-ui-selenium # explain :元素定位方式说明,用于返回By类型 import sys from utils.log import Log from selenium.common.exceptions import NoSuchElementException from selenium.webdriver.common.by import By class FindBy: def __init__(self, Type): """ 用于返回loaction元组的by类型 :param Type: yaml文件的Type值 """ self.__Type = Type # 定义查找元素 def find_by(self) -> By: """ 通过'id', 'name', 'class', 'tag', 'link', 'plink', 'css', 'xpath'查找相应的locationby :rtype locationby : selenium.webdriver.common.by.By :return locationby 对应的location元组的By的值 """ """定位元素""" by = self.__Type locationby = None if by in ['id', 'name', 'class', 'tag', 'link', 'plink', 'css', 'xpath']: try: if by == 'id': locationby = By.ID elif by == 'name': locationby = By.NAME elif by == 'class': locationby = By.CLASS_NAME elif by == 'tag': locationby = By.TAG_NAME elif by == 'link': locationby = By.LINK_TEXT elif by == 'plink': locationby = By.PARTIAL_LINK_TEXT elif by == 'css': locationby = By.CSS_SELECTOR elif by == 'xpath': locationby = By.XPATH else: Log.error("没有找到对应元素Type类型,请使用'id', 'name', 'class', 'tag', 'link', 'plink', 'css', 'xpath'") # Log.info('元素定位成功。定位方式:%s,使用的值%s:' % (by, value)) return locationby except NoSuchElementException as e: # print("no suceelement") method = sys._getframe(1).f_code.co_name # 调用该函数的函数名字,如果没有被调用,则返回<module> path = sys._getframe(1).f_code.co_filename # 调用该函数的文件名字,如果没有被调用,则返回<module> Log.error("在执行【" + path + "】文件中的【" + method + "】方法时出现错误" + "没有找到对应的元素" + e.__str__()) else: # print("输入的元素定位方式错误") Log.error("输入的元素定位方式错误,请使用'id', 'name', 'class', 'tag', 'link', 'plink', 'css', 'xpath'")
元素定位方式,返回by类型,辅助ReadyamlToElement类
原创yunjians 博主文章分类:python3selenium ©著作权
文章标签 元素定位方式 辅助ReadyamlToElement类 文章分类 软件测试
-
通过by来定位元素,辅助ReadyamlToElement类使用
通过by来定位元素,辅助ReadyamlToElement类使用
通过by来定位元素 辅助ReadyamlToElement 返回WebElemt -
python 指定元素类型 python元素定位方法
以百度搜索框为例,先打开百度网页 1.点右上角爬虫按钮 2.点左下角箭头 3.讲箭头移动到百度搜索输入框上,输入框高亮状态 4.下方红色区域就是单位到输入框的属性:<input id="kw"&nbs
python 指定元素类型 python 爬虫 css 标签名