ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2020-11-26 22:31:18  阅读:838  来源: 互联网

标签:el self list click WebDriverWait clickable until 调试 browser


 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有