#元素定位 元素是否可点击判断
#说明 name传入的是元素定位的方式 一共有以下几点 填入小写方法。value传入的是元素的路径。传入值之后 会返回一个方法 使用这个方法用方法名即可。
ID id
XPATH xpath
link_TEXT link text
PARTIAL_link_TEXT partial link text
NAME name
TAG_NAME tag name
CLASS_NAME class name
CSS_SELECtOR css selector
def locator(self,name,value):
Count 1
while True:
path True
sleep(1)
Count 1
try:
self.driver.find_element(name, value)
except Exception:
print( 找不到元素 )
path False
if path True:
print( 已找到元素 跳出循环 )
return self.driver.find_element(name,value)
elif Count 20:
print( 寻找元素大于20秒 跳出循环 )
return self.driver.find_element(name,value)
#说明 输入之前需要进行元素定位 所以需要name和value。元素定位之后保存到一个变量中 然后再用这个变量输入信息。clear的意思是清除输入框里的东西。
def input(self,name,value,txt):
el self.locator(name,value)
el.clear()
el.send_keys(txt)
def Click_lel(self,name, value):
el self.locator(name, value)
el.click()
#强制等待
#说明 time_作为时间参数传入 然后利用sleep函数强制等待即可。
def wait(self,time_):
sleep(time_)
#说明 word作为文本关键字传入 需要转义 然后再拼接
def assert_att(self,word):
try:
att self.driver.find_element_by_xpath( //*[contains(text(), word )] ).text
assert word in att
except Exception as e:
return e
#窗口切换
#说明 window_handles是获取所有窗口 witch_to.window是切换窗口。n是下坐标 0是第1个 1是第二个 以此类推。
def switch(self,n):
self.driver.switch_to.window(self.driver.window_handles[n])
#关闭页签
def close_switch(self,n):
self.driver.switch_to.window(self.driver.window_handles[n])#切换到新页签
self.driver.close()#关闭新页签
self.driver.switch_to.window(self.driver.window_handles[0])#然后切换回原始页签
关键字驱动执行
# -*- coding:utf-8 -*-
# time :2021-9-23 21:00
# Author :lemon_huahua
# File: test_file.py
import pytest
from class_001 import Webkeye #引入类方法
from time import sleep
def test_aa():
wk Webkeye()
wk.open( https://www.baidu.com )
wk.input( xpath , //input[ id kw ] , hello world )
wk.Click_lel( xpath , //input[ value 百度一下 ] )
sleep(5)
if __name__ __main__ :
pytest.main()