Selenium Webdriver wait预期条件失败:等待By.id定位的元素的可见性

学习者

我试图让Selenium Web驱动程序等待,但始终会出现异常“

org.openqa.selenium.TimeoutException:预期条件失败:等待By.id定位的元素的可见性:mobileNo(以100毫秒间隔尝试20秒)。

我将秒数增加到100,然后又遇到了同样的问题,我的ID是正确的。

    WebDriver d = new ChromeDriver();
    d.get("http://myurlOne");
    WebElement username = d.findElement(By.id("username_id"));          
    username.sendKeys("123");
    WebElement password = d.findElement(By.id("password_id"));
    password.sendKeys("123");
    d.findElement(By.id("loginButton")).click();
    System.out.println("logged in successfully");
    d.get("http://navigatedurl");
    JavascriptExecutor js = (JavascriptExecutor)d;  
    System.out.println("navigated to new page"); 
    WebDriverWait wait__mob = new WebDriverWait(d, 20);
    try {
        System.out.println("Start"+new Date());
        wait__mob .pollingEvery(100,TimeUnit.MILLISECONDS).until(ExpectedConditions.visibilityOfElementLocated(By.id("mobileNo")));
        d.findElement(By.id("mobileNo")).sendKeys("99999999999);
    } catch (TimeoutException e) {
        // TODO: handle exception
        System.out.println(e.toString());
    } 

分区代码:

 <div class="form-group">
   <label class="col-xs-5 control-label" for="mobileNo">Mobile No.</label>
     <div class="col-xs-6 leftpadding-none">
        <input type="tel" class="form-control k-input" id="mobileNo" 
       name="inputmobileNo" placeholder="" maxlength="10"> <!--required 
       pattern="\d{10}" validationMessage="Mobile No. is Required"-->
  </div>

DebanjanB

根据WebDriverWaitJava文档如果要更改轮询间隔,则需要在构造函数中进行更改,因为构造函数如下:

WebDriverWait(WebDriver driver, long timeOutInSeconds, long sleepInMillis)

Wait will ignore instances of NotFoundException that are encountered (thrown) by default in the 'until' condition, and immediately propagate all others.

在尝试调用sendKeys()元素时继续前进,您需要调用ExpectedConditions方法elementToBeClickable

因此您的代码将是:

WebDriver d = new ChromeDriver();
d.get("http://myurlOne");
WebElement username = d.findElement(By.id("username_id"));          
username.sendKeys("123");
WebElement password = d.findElement(By.id("password_id"));
password.sendKeys("123");
d.findElement(By.id("loginButton")).click();
System.out.println("logged in successfully");
d.get("http://navigatedurl");
System.out.println("navigated to new page"); 
WebDriverWait wait__mob = new WebDriverWait(d, 20);
try {
    System.out.println("Start"+new Date());
    wait__mob.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='form-group']//label[contains(.,'Mobile No.')]//following::div[1]/input[@class='form-control k-input' and @id='mobileNo' and @type='tel']"))).sendKeys("9999999999);
} catch (TimeoutException e) {
    System.out.println(e.toString());
} 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Selenium Webdriver问题,具有:预期条件失败:等待由(..)定位的元素的可见性

Selenium Webdriver:预期条件失败:正在等待IAP Google处于无头模式的元素的可见性

org.openqa.selenium.TimeoutException:预期条件失败:等待By.xpath定位的元素的可见性:

预期条件失败:正在等待By.xpath定位的元素的可见性

Selenium Webdriver错误否定的结果,用于测试元素的可见性?

等待多个元素在Selenium Webdriver JavaScript绑定中可见

Selenium webdriver 等待元素并单击

元素在Selenium WebDriver中不可见

Python Selenium:使用 webdriver 定位并单击 -> 工具提示可见,没有“id”或“name”

如何解决代码中的“等待By.xpath定位的元素的可见性”?

Selenium WebDriver:使用WebDriver.findElement定位时,等待元素出现

JavaScript-Selenium Webdriver。如何检查元素是否可见

如何强制Selenium WebDriver单击当前不可见的元素?

Selenium Webdriver Java:元素不可见异常

Selenium Webdriver:元素不可见异常

Selenium Webdriver-元素不可见

Selenium预期条件,Webdriver实例来自哪里?

Selenium WebDriver等待不适用于cookie策略窗口的预期条件

如何使用Selenium Webdriver等待元素不可单击?

Selenium-webdriver(Java脚本)等待元素消失

如何等待Selenium Webdriver中启用的输入元素?

Selenium c#Webdriver:等待直到元素存在

Selenium WebDriver- WebElement.FindElements返回比预期更多的元素

无法使用Selenium WebDriver定位输入元素

无法使用 Selenium 定位 webdriver 元素 |

Selenium Webdriver-等待用户单击没有ID的按钮

Selenium WebDriver 失败并显示 NoSuchElementException

为什么我不能对页面中的多个元素使用 WebDriver Wait for Selenium Webdriver?

Selenium WebDriver等到显示元素