技术交友 | Web自动化之显式等待与隐式等待
发布时间:2023-03-05
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
。漳州妇科最好医院是哪个苏州白癜风专科医院哪个好
上海皮肤病医院哪家看的好
广西白癜风医院怎么去
北京肛肠医院哪个最好
上一篇: 江苏首富,凉凉之前
-
多款游戏添加“微信天游”运营主体,微信:不影响实际运营
多款微信旗下的游戏添加深圳市微信天游信息技术有限公司(一般而言简援引“微信天游”)作为运行其余均。 5月底6日,微信的游戏官微紧急通知援引:微信天游是微信全资上市公司子公司,是微
- 2025-05-12贝壳回港之忧,5400亿市值消亡,新竞争者涌现
- 2025-05-12锂硅电池塑料公司Group14获4亿美元融资,保时捷参投
- 2025-05-12全国农商银行!深圳农商银行入围“跨境理财通”试点工作银行
- 2025-05-12电池抽取龙头格林美子公司冲刺IPO,回应高位减持质疑
- 2025-05-12佳缘科技董事长王进谈股价波动:股价涨跌受多个产品因素影响
- 2025-05-12合景泰富集团:4月预售额43.52亿元,同比下降66.3%
- 2025-05-12华瑞股份收年度报告问询函:被追问销售人数和薪酬变动不一致的原因及合理性
- 2025-05-12*ST华源:拟向关联方华电煤业发股购买其持有的锦兴能源51%大股东,并拟定增募资
- 2025-05-12三连板若羽臣收关注函:所投医美公司是否存在虚假标榜、存在医美贷等消费分期金融产品?
- 2025-05-12雅居乐集团:4 月项目预售固山39.4 亿元,前4月合计250.5亿元