当前位置: 首页 > 面试题库 >

硒隐式等待不起作用?

廖琪
2023-03-14
问题内容

我正在学习Java Maven Selenium。我希望在Selenium中使用implicitlyWait

  1. 打开网站(例如https://www.facebook.com)
  2. 单击登录的电子邮件字段
  3. 等待20秒
  4. 输入我的电子邮件

这是我的简单代码:

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秒钟才输入我的电子邮件。


问题答案:

Implicit Wait并且Explicit Waits无法正常工作,他们将在指定的持续时间内最大程度地等待元素。如果在执行下一步之前找到了元素,则它们将等待。

如果您希望测试等待确切的时间,则可能需要使用。

Thread.sleep(Time duration in milliseconds);

您可能要参考Diff b / w隐式等待和显式等待

显式等待 :显式等待是您定义的代码,用于在继续执行代码之前等待特定条件发生。

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

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



 类似资料:
  • 问题内容: 我正在学习Java Maven Selenium。我想要在Selenium中使用这样的东西。 打开网站(例如https://www.facebook.com) 单击登录的电子邮件字段 等待20秒 输入我的电子邮件 这是我的简单代码: 该代码不起作用。它只会打开Facebook,单击电子邮件字段并输入我的电子邮件ID,而不是等待10秒钟才输入我的电子邮件。 问题答案: 并且无法正常工作,

  • 问题内容: 这是我第一次使用selenium和无头浏览器,因为我想使用ajax技术来爬网某些网页。 效果很好,但是在某些情况下,加载整个页面会花费太多时间(尤其是当某些资源不可用时),因此我必须为selenium设置超时时间。 首先,我尝试了和,但是当我设置这些超时时,如果页面未完全加载,我将不会得到任何页面源,如下代码所示: 所以我尝试使用隐式等待和条件等待,如下所示: 这次我得到了想要的内容。

  • 驱动程序级别的隐式和显式等待之间有什么区别。哪一个是驱动级等待。如果我们在代码中提供隐式和显式等待。哪一个优先。

  • 我是初学者。我了解Wait的基本功能,但我对互联网上不同的教程如何放置和解释它感到困惑。例如,在下面的代码中,它是在加载URL之前放置的。那么,是只等待加载URL,还是等待查找元素,或者两者都是?如果我在try块中使用隐式等待一次,它将适用于我在代码中执行的每个元素搜索,这是真的吗?

  • 问题内容: 我是Selenium WebDriver的新手,正在尝试了解“等待”元素出现的正确方法。 我正在测试一个带有单选按钮答案的问题的页面。选择答案时,JavaScript可能启用/禁用页面上的某些问题。 问题似乎是Selenium的“单击速度太快”,而不是等待Javascript完成。我尝试用两种方式解决此问题- 显式等待解决了该问题。具体来说,这可以解决我的问题: 但是,我 宁愿 使用隐

  • 我正在尝试与selenium webDrive同步,但某些东西无法隐含地使用等待()。 我隐含理解的方式等待(...)是代码正在等待,直到元素在最大时间内可用。 以下代码因错误而崩溃: 系统。out ist打印:-- 我也用Geckodriver试过了,结果也一样。 我也增加了等待时间,但结果相同。 使其工作的唯一方法是使用Thread.sleep()(上面评论) 编辑请注意,我没有看到任何重复与