java Selenium-Webdriver显式等待Apache JMeter 5.5

gojuced7  于 2023-01-11  发布在  Java
关注(0)|答案(1)|浏览(132)

我在Apache Jmeter 5.5中使用Selenium Webdriver,需要使用显式等待。脚本语言是Java。下面是我的示例代码:

import org.openqa.selenium.*;
import org.openqa.selenium.support.ui.*;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

var driver=WDS.browser;

// Load Url
driver.get("https://samplewebsite.com");
driver.manage().window().setSize(new Dimension(1936, 1048));
driver.manage().window().maximize();
driver.findElement(By.xpath(".//span[@class='content']")).click();

// Login 
WebElement username = new WebDriverWait(driver, Duration.ofSeconds(10)).until(ExpectedConditions.elementToBeClickable(By.xpath(".//input[@type='email']")));
driver.findElement(By.xpath(".//input[@type='email']")).click();
driver.findElement(By.xpath(".//input[@type='email']")).sendKeys("sampleUsername");
driver.findElement(By.xpath(".//input[@type='submit']")).click();
driver.findElement(By.xpath(".//input[@type='password']")).click();
driver.findElement(By.xpath(".//input[@type='password']")).sendKeys("samplePassword");
driver.findElement(By.xpath(".//input[@type='submit']")).click();
driver.findElement(By.cssSelector("span")).click();
// login details
WDS.sampleResult.sampleEnd();

在上面的代码中,我遇到了下面的no such element异常:
目标异常:org.openqa.selenium.NoSuchElementException:无此类要素:找不到元素:{“方法”:“xpath”,“选择器”:“.//input[@type ='email']"}

  • 方框引号 *

所以,我使用显式等待作为建议,但是,我面临以下错误:

Sourced file: inline evaluation of: ``import org.openqa.selenium.*; import org.openqa.selenium.support.ui.*; import or . . . '' : Typed variable declaration : Attempt to resolve method: ofSeconds() on undefined variable or class name: Duration : at Line: 15 : in file: inline evaluation of: ``import org.openqa.selenium.*; import org.openqa.selenium.support.ui.*; import or . . . '' : Duration .ofSeconds ( 10 ) 
 in inline evaluation of: ``import org.openqa.selenium.*; import org.openqa.selenium.support.ui.*; import or . . . '' at line number 15

所有的xpath都经过验证和正确,我无法找到解决上述错误的方法。我正在做的任何故障排除都面临着这个源文件评估错误。
我的目标是一个正确的显式等待之前,我们输入用户名和密码的详细信息,分别在电子邮件和密码字段。

// Login 
WebElement username = new WebDriverWait(driver, Duration.ofSeconds(10)).until(ExpectedConditions.elementToBeClickable(By.xpath(".//input[@type='email']")));
driver.findElement(By.xpath(".//input[@type='email']")).click();
driver.findElement(By.xpath(".//input[@type='email']")).sendKeys("sampleUsername");
driver.findElement(By.xpath(".//input[@type='submit']")).click();
driver.findElement(By.xpath(".//input[@type='password']")).click();
driver.findElement(By.xpath(".//input[@type='password']")).sendKeys("samplePassword");
driver.findElement(By.xpath(".//input[@type='submit']")).click();
driver.findElement(By.cssSelector("span")).click();
yhqotfr8

yhqotfr81#

您需要(至少)导入Duration类:

import java.time.Duration

也不要与java混淆,因为如果您认为它是“java”-它不是,您实际上使用的是Beanshell interpreter,它不是100% Java兼容的。
如果你想使用更接近Java的东西-考虑切换到groovy language,而且它是自JMeter 3.1以来推荐的脚本选项

相关问题