当前位置:  开发笔记 > 编程语言 > 正文

硒含蓄地等不行?

如何解决《硒含蓄地等不行?》经验,为你挑选了1个好方法。

我正在学习Java Maven Selenium.我想在Selenium中使用这样的东西implicitlyWait.

    打开网站(例如https://www.facebook.com)

    单击登录的电子邮件字段

    等20秒

    输入我的邮箱

这是我的简单代码:

package com.org.learningMaven;

import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.testng.annotations.Test;

public class HelloWorldTest {   
    @Test
    public void login() {
        WebDriver driver = new FirefoxDriver();
        driver.get("https://www.facebook.com/");
        driver.findElement(By.id("email")).click();
        driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
        driver.findElement(By.id("email")).sendKeys("myemail@yahoo.com");
    }
    private void sendKeys(Keys enter) {
        // TODO Auto-generated method stub

    }
}

此代码无效.它只需打开Facebook,点击电子邮件字段并输入我的电子邮件ID,而不是在输入我的电子邮件前等待10秒.



1> Paras..:

Implicit Wait并且Explicit Waits不会那样工作,他们将在指定的持续时间内最大等待元素,如果他们在下一步之前找到该元素将被执行.

如果您希望测试等待确切的持续时间,您可能想要使用.

Thread.sleep(Time duration in milliseconds);

您可能想要参考Diff b/w Implict Wait和Explicit Wait

显式等待:显式等待是您定义的代码,用于在进一步执行代码之前等待某个条件发生.

隐式等待:隐式等待是告诉WebDriver在尝试查找一个或多个元素(如果它们不是立即可用)时轮询DOM一段时间.

Thread.sleep:在睡眠代码中它将始终等待上述秒数,即使页面准备好在1秒后进行交互.所以这会减慢测试速度.

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有