gpt4 book ai didi

selenium - 如何在 selenium webdriver 中等待,直到输入 5 个字符长度的文本

转载 作者:行者123 更新时间:2023-12-04 13:23:43 26 4
gpt4 key购买 nike

我正在尝试自动化一个涉及 CAPTCHA 的应用程序。
我尝试将 WebDriverWait 与以下代码一起使用:

WebDriverWait mywait = new WebDriverWait(driver,20);
mywait.until(ExpectedConditions.attributeToBeNotEmpty(driver.findElementByClassName("loginCaptcha"),"value"));

现在这里的问题是,只要我在文本中输入验证码的第一个字符,上述条件就会变为真,并且正在执行下一条语句,这会导致验证码无效错误。

有没有办法等到在文本框中输入 5 个字符(我的验证码总是 5 个字符长度固定。)

PS:我不想使用静态等待。

最佳答案

首先,你不应该尝试用 Selenium 来解决验证码。 CAPTCHA 的全部目的是防止 UI 自动化。如果您想克服 CAPTCHA,您应该使用 SUT 的内部 API。

关于等待特定的文本长度,它应该是这样的:

//First init WebDriverWait to 20 sec
WebDriverWait mywait = new WebDriverWait(driver, 20);

//Locator to your DOM element
By byClass = By.class("loginCaptcha");

//Wait until text box has value greater or equal 5 character
mywait.until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver d) {
return (d.findElement(byClass).getAttribute ("value").length() >= 5)
}
});

关于selenium - 如何在 selenium webdriver 中等待,直到输入 5 个字符长度的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44619071/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com