ICode9

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

设置元素等待

2020-05-14 18:06:29  阅读:190  来源: 互联网

标签:webdriver ctime selenium 元素 driver 设置 print import 等待


1、显式等待

from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.support.wait import WebDriverWait

    def text_by_xpath(self,loc):
        '''依据元素返回text信息'''
       # / self.logger.debug(loc)
        for i in range(5):
            try:
                WebDriverWait(self.driver,3,1).until(
                    EC.presence_of_element_located(loc)
                )
                text = self.find_element(*loc).text
                if text!=None:

                    return text
            except Exception as e:
                # self.logger.debug(e)
                pass
        else:
           # self.logger.debug("无内容返回")
            pass

在设置时间内,每隔一段时间对页面进行检测

expected_conditions提供的判断方法:

 

 

 除了使用该类,还可使用 is_displayed()方法进行判断元素是否可见

from selenium import webdriver
from time import sleep ,ctime

driver = webdriver.Firefox()
driver.get("http://www.baidu.com")

print(ctime())

for i in range(10):
    try:
        el = driver.find_element_by_id("kw1")
        if el.is_displayed():
            break
    except:pass
    sleep(1)

else:
    print("time out")
driver.close()
print(ctime())

2、隐式等待

通过一定时长等待页面上某元素加载完成。如果超出设置的时长还没有被加载,则抛出异常

from selenium import webdriver
from time import sleep ,ctime
from selenium.common.exceptions import  NoSuchElementException

driver = webdriver.Firefox()
driver.implicitly_wait(10)
driver.get("http://www.baidu.com")

try:
    print(ctime())
    el = driver.find_element_by_id("kw1").send_keys("111")
except NoSuchElementException as e:
    print(e)
finally:
    driver.close()
    print(ctime())

 

3、sleep休眠方式

 

 

 

 

from selenium import webdriver
from time import sleep ,ctime
from selenium.common.exceptions import NoSuchAttributeException

driver = webdriver.Firefox()
driver.implicitly_wait(10)
driver.get("http://www.baidu.com")

try:
print(ctime())
el = driver.find_element_by_id("kw1").send_keys("111")
except NoSuchAttributeException as e
print(e)
finally:
driver.close()
print(ctime())

标签:webdriver,ctime,selenium,元素,driver,设置,print,import,等待
来源: https://www.cnblogs.com/wbw-test/p/12890352.html

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

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

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

ICode9版权所有