selenium 获取table中的元素。python

selenium 获取table中的元素。python,第1张

>

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基于原生第二次封装等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9469820.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存