Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java selenium等待几秒钟,然后运行执行下一行代码_Java_Selenium_Xpath - Fatal编程技术网

Java selenium等待几秒钟,然后运行执行下一行代码

Java selenium等待几秒钟,然后运行执行下一行代码,java,selenium,xpath,Java,Selenium,Xpath,我想增加5秒的等待时间,然后运行下一行 driver.findElement(By.xpath("html/body/div[2]/bookking- navbar/nav/div/div/div[1]/div[3]/ul/li[1]/authentication/a/span")).click(); String value= driver.findElement(By.xpath(".//* [@id='username']")).getText(); 这里我想添加5秒等待,然后

我想增加5秒的等待时间,然后运行下一行

driver.findElement(By.xpath("html/body/div[2]/bookking-
navbar/nav/div/div/div[1]/div[3]/ul/li[1]/authentication/a/span")).click();

String value=  driver.findElement(By.xpath(".//*
   [@id='username']")).getText();
这里我想添加5秒等待,然后运行下一行如果使用线程。睡眠(500)网页加载太多的时间

driver.findElement(By.xpath(".//*[@id='username']")).clear();

driver.findElement(By.xpath(".//*[@id='username']")).sendKeys(value);

driver.findElement(By.xpath(".//*[@id='password']")).sendKeys("apple123");


driver.findElement(By.xpath("html/body/div[1]/div/divdiv/button")).click();
要使线程休眠,请执行以下操作:

睡眠(5000)

但这并不是一个好的决定,因为你的测试会很慢。改用webdriver等待:

WebDriverWait wait=新的WebDriverWait(驱动程序,5000); wait.until(ExpectedConditions.elementtobelickable(By.xpath(“xpathHere”))

它将等待
element可选择
(或者您可以选择任何其他条件)并继续执行测试。否则,如果超时期间未满足条件,将引发异常

更新: 如果您使用selenium+java编写UI回归测试,强烈建议使用。以下是10分钟开始教程:

  • 它与纯硒完全结合
  • 自行管理WebDriver(如果需要,可以通过
    WebDriverRunner.setWebDriver(driver);
    通过WebDriver设置)
  • 具有非常易于使用和阅读的语法,如:
    $(“#elementId”)。按Enter()。应该(消失)
  • 在这个主题上,什么是重要的?它具有易于使用的等待,例如:
因此,初始代码:

driver.findElement(By.xpath(".//*[@id='username']")).clear();
driver.findElement(By.xpath(".//*[@id='username']")).sendKeys(value);
driver.findElement(By.xpath(".//*[@id='password']")).sendKeys("apple123");
driver.findElement(By.xpath("html/body/div[1]/div/divdiv/button")).click();
使用Selenide时,将如下所示(包括所有等待):


Selenium适用于多种语言。请为您正在使用的驱动程序添加标记。我可以知道您为什么需要等待5秒钟吗?您不必将代码置于睡眠状态。改为设置Selenium超时。这样,在引发异常之前,它将持续尝试查找标记几秒钟。@santhoshkumar im使用get text命令(手动输入)需要5秒钟,这是为什么
driver.findElement(By.xpath(".//*[@id='username']")).clear();
driver.findElement(By.xpath(".//*[@id='username']")).sendKeys(value);
driver.findElement(By.xpath(".//*[@id='password']")).sendKeys("apple123");
driver.findElement(By.xpath("html/body/div[1]/div/divdiv/button")).click();
$("#username").shouldBe(visible).setValue(value);
$("#password").shouldBe(visible).setValue("apple123");
$(By.xpath("html/body/div[1]/div/divdiv/button")).shouldBe(visible).setValue("apple123");