其他分享
首页 > 其他分享> > 记录一次代码调试过程-WebDriverWait().until(直到元素出现)

记录一次代码调试过程-WebDriverWait().until(直到元素出现)

作者:互联网

 1、原本代码如下如所示:

代码说明:使用显性等待,作用是,当这个元素出现时,点击,跳转到另一个页面

class IndexPage:
    invert_localtor=("xpath",'(//a[@class="btn btn-special"])[1]')
    def __init__(self,browser):
        self.browser=browser

    '''等待元素出现'''
    def wait_clickable(self,browser, locator):

        el = WebDriverWait(browser, 10, poll_frequency=0.3).until(ec.presence_of_all_elements_located(locator))
      
        return el
    def click_pass(self):
            '''点击投标后,在投标详情页面'''
            t=self.wait_clickable(self.browser,self.invert_localtor).click()

报错:test_invest_error - AttributeError: 'list' object has no attribute 'click',(实际上就是 click_pass,因为test_invest_error方法调用该方法,没有贴代码)

思考:为什么是list,明明是单个元素点击?

调试:在wait_clickable方法中,print(el)

结果:[webElement:xxxxxxxx],说明是list形式打印。

调试2:所以把return el换成el[0],
结果:运行正确,仔细看,原来until(ec.presence_of_all_elements_located(locator))方法调用错误,不小心选择的是直到所有元素出现,应该是【presence_of_element_located】

!!!!!!自己把自己坑了!!!!!!!!!!!!!!!!!!!!!!!!!

 

标签:el,self,list,click,WebDriverWait,clickable,until,调试,browser
来源: https://blog.csdn.net/jjb_584520/article/details/110207107