当前位置:首页 >> 中药养生 >> 技术交友 | Web自动化之显式等待与隐式等待

技术交友 | Web自动化之显式等待与隐式等待

发布时间:2023-03-05

Driver();

webDriver.get("");

//推断下次10秒,直到 wait_ele_for 离开 true

new WebDriverWait(webDriver,10).until((ExpectedCondition) size -> waitEleFor());

}

// 假设一个原理

boolean waitEleFor(){

// 将想到到的表达方式整数运算符给 eles

List elements = webDriver.findElements(By.xpath("//*[@id='site-text-logo']"));

return elements.size()> 0;

}

一律下次

一律下次是使缓存休眠一定时间。一律下次一般在隐式下次和显式下次都不起依赖性时使用。示例编译器如下

Python 原版

# 下次十秒

time.sleep(10)

Java 原版 // 下次2000毫秒,相等于下次2秒

Thread.sleep(2000)

实战演示

到访试验中人社一区:,点选归类,然后点选答疑一区:

当点选归类时,表达方式还未载入已完成,这里就所需隐式下次。在点选答疑一区时,表达方式已载入已完成,但是还处在不必点选的状态,这时要加到显式下次。

Python原版

#导向缺少

import time

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.support import expected_conditions

from selenium.webdriver.support.wait import WebDriverWait

class TestHogwarts():

def setup(self):

self.driver = webdriver.Chrome()

self.driver.get('')

#加入隐式下次

self.driver.implicitly_wait(5)

def teardown(self):

#一律下次

time.sleep(10)

self.driver.quit()

def test_hogwarts(self):

#表达方式定位,这里的category_name是一个bits。

category_name = (By.LINK_TEXT, "自由软件重大项目")

# 加入显式下次

WebDriverWait(self.driver, 10).until(

expected_conditions.element_to_be_clickable(category_name))

# 点选自由软件重大项目

self.driver.find_element(*category_name).click()

Java原版

import org.junit.jupiter.api.AfterAll;

import org.junit.jupiter.api.BeforeAll;

import org.junit.jupiter.api.Test;

import org.openqa.selenium.By;

import org.openqa.selenium.chrome.ChromeDriver;

import org.openqa.selenium.support.ui.ExpectedConditions;

import org.openqa.selenium.support.ui.WebDriverWait;

import java.util.concurrent.TimeUnit;

public class WebDriverWaitTest {

private static ChromeDriver driver;

@BeforeAll

public static void setUp() {

System.setProperty(

"webdriver.chrome.driver",

"/driver/chrome95/chromedriver"

);

driver = new ChromeDriver();

driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);

}

@AfterAll

public static void tearDown() {

driver.quit();

}

@Test

public void waitTest(){

driver.get("");

By locator = By.linkText("自由软件重大项目");

// 加入显式下次

WebDriverWait wait = new WebDriverWait(driver, 10);

wait.until(ExpectedConditions.elementToBeClickable(locator));

// 点选自由软件重大项目

driver.findElement(locator).click();

}

}

在理论上工作中的下次机制可以必要编译器的可靠性,必要编译器不会所受网速、电脑性能等必须的约束。

⬇️ 镜像“顶部链接”,增强试验中一个中心创新能力!

>>更多技术文章回馈和免费参考资料申领 欢迎+V~ ceshiren001

_id=qrcodeWildfrom=souhuWildtimestamp=1651029236

漳州妇科最好医院是哪个
苏州白癜风专科医院哪个好
上海皮肤病医院哪家看的好
广西白癜风医院怎么去
北京肛肠医院哪个最好
标签:
友情链接: