driver.implicitly_wait()与time.sleep()的区别

implicitly_wait(5)属于隐式等待,5秒钟内只要找到了元素就开始执行,5秒钟后未找到,就超时;

time.sleep(5)表示必须等待5秒定位;

如何灵活运用这两种方式:

当某个页面元素变化多,影响多的情况下,用sleep,等页面元素稳定了,再定位。

如果用implicitly_wait(5),还没等页面元素稳定后就定位 ,导致定位不准确,比如操作某个元素后,会出现提示框,影响了后面元素的位置,导致定位不准确;所以用sleep,等提示框消失后开始定位。

代码1:import time from selenium import webdriver from selenium.webdriver.common.by import By class TestLogin: def setup_class(self): self.driver = webdriver.Edge() self.driver.maximize_window() self.driver.implicitly_wait(10) def teardown_class(self): time.sleep(3) self.driver.quit() def setup(self): self.driver.get("https://opensource-demo.orangehrmlive.com/web/index.php/auth/login") def test_login_error_password(self): self.driver.find_element(By.CSS_SELECTOR, "[name='username']").send_keys("Admin") self.driver.find_element(By.CSS_SELECTOR, "[name='password']").send_keys("admin1234") self.driver.find_element(By.CSS_SELECTOR, ".orangehrm-login-button").click() element = self.driver.find_element(By.CSS_SELECTOR, "p[class*='oxd-alert-content-text']") print(element.text) 不能正常运行,无法访问网址,一直显示不安全data,; 代码2:import time from selenium import webdriver from selenium.webdriver.common.by import By class TestLogin: def test_login_error_password(self): driver = webdriver.Edge() driver.get("https://opensource-demo.orangehrmlive.com/web/index.php/auth/login") driver.implicitly_wait(20) driver.find_element(By.CSS_SELECTOR, "[name='username']").send_keys("Admin") driver.find_element(By.CSS_SELECTOR, "[name='password']").send_keys("admin1234") driver.find_element(By.CSS_SELECTOR, ".orangehrm-login-button").click() element = driver.find_element(By.CSS_SELECTOR, "p[class*='oxd-alert-content-text']") print(element.text) time.sleep(3) driver.quit() 可以正常访问网址并运行
10-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值