
>
1 frame标签后面加冒号是标准的frame写法吗?不会是自定义的标签吧
<frame:groupmenu >
</frame>
2 我用的switch_to_frame(frameName) 没有问题
print '-------------------------switch to top frame'driverswitch_to_default_content()
driverswitch_to_frame('top')
print driverfind_element_by_id('top-btn')text
print 'switch_to_frame done'
print '-------------------------switch to left frame'
driverswitch_to_default_content()
driverswitch_to_frame('left')
print driverfind_element_by_id('left-btn')text
print 'switch_to_frame done'
print '-------------------------switch to main frame'
driverswitch_to_default_content()
driverswitch_to_frame('main')
# coding:utf-8
from seleniumimport webdriver
from seleniumwebdriversupportwaitimport WebDriverWait
from seleniumwebdriversupportimport expected_conditionsas EC
from seleniumwebdrivercommonbyimport By
from seleniumwebdrivercommonaction_chainsimport ActionChains
from seleniumwebdriversupportselectimport Select
# By的用法
# driverfind_element("id", "kw")
# driverfind_element(ByID, "kw")
class Base():
'''基于原生的selenium做二次封装'''
def __init__(self, driver):
selfdriver = driver
selftimeout =10
selft =05
def findElement(self, locator, value=''):
'''定位元素,返回元素对象,10s钟没定位到,Timeout异常,locator传元组'''
if not isinstance(locator, tuple):
print("locator的参数类型错误,必须穿元组类型,如:('id', 'kw')")
else:
print("正在定位元素,定位方式为→{0},定位元素为→{1}"format(locator[0], locator[1]))
if value !='':# value 值定位
ele = WebDriverWait(selfdriver, selftimeout, selft)until(
ECtext_to_be_present_in_element_value(locator, value))
return ele
else:# 默认为此方法常规定位
try:
ele = WebDriverWait(selfdriver, selftimeout, selft)until(
ECpresence_of_element_located(locator))
return ele
except:
print("定位失败,定位方式为→{0},定位元素为→{1}"format(locator[0], locator[1]))
return []
def findElements(self, locator, value=''):
'''定位元素,返回元素对象,10s钟没定位到,Timeout异常,locator传元组'''
if not isinstance(locator, tuple):
print("locator的参数类型错误,必须穿元组类型,如:('id', 'kw')")
else:
print("正在定位元素,定位方式为→{0},定位元素为→{1}"format(locator[0], locator[1]))
if value !='':# value 值定位
eles = WebDriverWait(selfdriver, selftimeout, selft)until(
ECtext_to_be_present_in_element_value(locator, value))
return eles
else:# 默认为此方法常规定位
try:
eles = WebDriverWait(selfdriver, selftimeout, selft)until(
ECpresence_of_all_elements_located(locator))
return eles
except:
print("定位失败,定位方式为→{0},定位元素为→{1}"format(locator[0], locator[1]))
return []
def sendKeys(self, locator, text=''):
try:
selffindElement(locator)send_keys(text)
except:
print("text:%s输入错误" % text)
def click(self, locator):
try:
selffindElement(locator)click()
except:
print("点击失败")
def clear(self, locator):
try:
selffindElement(locator)clear()
except:
print("清空内容失败")
def isSelected(self, locator, Type=''):
''' 判断元素是否被选中,返回bool值 及点(选中/取消选中)'''
ele =selffind(locator)
try:
if Type =='':# 如果type参数为空,返回元素是否为选中状态,True/False (默认)
r = eleis_selected()
return r
elif Type =='click':# 如果type参数为click,执行元素的点击 *** 作
eleclick()
else:
print("type参数 {0} 错误,仅可为click或"format(Type))
except:
return False
def isElementExist(self, locator):
'''判断单个元素是否在DOM(元素树)里面'''
try:
selffindElement(locator)
return True
except:
return False
def is_title(self, title=''):
'''判断当前页面title是否为title,返回bool值'''
try:
result = WebDriverWait(selfdriver, selftimeout, selft)until(ECtitle_is(title))
return result
except:
return False
def is_title_contains(self, title=''):
'''判断当前页面title名是否含有title,返回bool值'''
try:
result = WebDriverWait(selfdriver, selftimeout, selft)until(ECtitle_contains(title))
return result
except:
return False
def is_text_in_element(self, locator, text=''):
'''判断当前获取到的text含text,返回bool值'''
try:
result = WebDriverWait(selfdriver, selftimeout, selft)until(
ECtext_to_be_present_in_element(locator, text))
return result
except:
return False
def is_value_in_element(self, locator, _value=''):
'''返回bool值, value为空字符串,返回False'''
if not isinstance(locator, tuple):
print('locator参数类型错误,必须传元祖类型:loc = ("id", "value1")')
try:
result = WebDriverWait(selfdriver, selftimeout, selft)until(
ECtext_to_be_present_in_element_value(locator, _value))
return result
except:
return False
def get_title(self):
'''获取title'''
return selfdrivertitle
def get_text(self, locator):
'''获取文本'''
try:
result =selffindElement(locator)text
return result
except:
print("获取text失败")
return ""
def get_attribute(self, locator, name):
'''获取属性'''
try:
element =selffindElement(locator)
return elementget_attribute(name)
except:
print("获取%s属性失败" % name)
return ""
def select_by_index(self, locator, index=0):
'''通过索引,index是索引第几个,从0开始,默认选第一个'''
element =selffind(locator)# 定位select这一栏
Select(element)select_by_index(index)
def select_by_value(self, locator, value):
'''通过value属性'''
element =selffind(locator)
Select(element)select_by_value(value)
def select_by_text(self, locator, text):
'''通过文本值定位'''
element =selffind(locator)
Select(element)select_by_visible_text(text)
# 这里只写了几种方法,后续有需要用到的定位方法或者 *** 作,可以继续封装起来然后调用
if __name__ =='__main__':
driver = webdriverChrome()
web = Base(driver)
driverget(">
以上就是关于selenium 获取table中的元素。python全部的内容,包括:selenium 获取table中的元素。python、PYTHON,SELENIUM如何获取HTML内元素,、selenium基于原生第二次封装等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)