强制等待、隐式等待、显示等待。
1.强制等待:线程等待即:Thread.sleep(2000);
2.显示等待:比较智能,找到页面元素就继续执行否则会继续等待(在设置好的等待时间内),如果在设置的等待时间内还没找到也会报出元素定位不到。
写法一:WebDriverWait wait= new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("js-signin-btn")));
写法二:
WebElement wait= new WebDriverWait(driver, 10).until(ExpectedConditions.presenceOfElementLocated(By.id("js-signin-btn")));
3.隐试等待:全局的等待10秒钟
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
selenium和appium中强制等待、显示等待和隐式等待的区别:
强制等待
time.sleep()
设置固定的线程休眠时间。
显示等待
WebDriverWait()
比如:
driver = webdriver.Chrome()
driver.get(‘http://www.baidu.com’)
element = WebDriverWait(driver,5,0.5).until(EC.presence_of_element_located(By.ID,‘kw’))
element.sendkeys(‘selenium’)
说明:显示等待是单独针对某个元素,设置一个等待时间如5秒,每隔0.5秒检查一次是否出现,如果在5秒之前任何时候出现,则继续向下,超过5秒尚未出现则抛异常。
隐式等待
implicitly_wait()
比如:
driver.implicitly_wait(10)
说明:隐式等待是全局的是针对所有元素,设置等待时间如10秒,如果10秒内出现,则继续向下,否则抛异常。可以理解为在10秒以内,不停刷新看元素是否加载出来。
————————————————
版权声明:本文为CSDN博主「andyyoung2001」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011795169/article/details/90297800