Java If语句在Selenium Webdriver中不起作用
我总是对selenium中的if语句有问题。大多数时候,他们做的与他们应该做的相反 我故意输入了一个错误的电子邮件地址,因此付款将失败。哎呀!显示在网页上,这是正确的响应,但我的测试失败。当我输入正确的电子邮件时,xpath是正确的 请有人看看,告诉我哪里出了问题Java If语句在Selenium Webdriver中不起作用,java,selenium,if-statement,Java,Selenium,If Statement,我总是对selenium中的if语句有问题。大多数时候,他们做的与他们应该做的相反 我故意输入了一个错误的电子邮件地址,因此付款将失败。哎呀!显示在网页上,这是正确的响应,但我的测试失败。当我输入正确的电子邮件时,xpath是正确的 请有人看看,告诉我哪里出了问题 @Test(dependsOnMethods = { "WithdrawalButtonOnNavBar" }) public void WithdrawWinnings() throws Interrup
@Test(dependsOnMethods = { "WithdrawalButtonOnNavBar" })
public void WithdrawWinnings() throws InterruptedException {
Thread.sleep(500);
driver.findElement(By.cssSelector("input[name='email']")).sendKeys(skrillAccount);
Thread.sleep(500);
driver.findElement(By.xpath("//p[contains(text(),'Continue')]")).click();
Thread.sleep(500);
driver.findElement(By.cssSelector("input[name='amount']")).sendKeys("2");
Thread.sleep(500);
driver.findElement(By.xpath("//*[@id=\"__next\"]/div/div[1]/div[2]/div/div[3]/div/div/div")).click();
Thread.sleep(5000);
WebElement Success = driver.findElement(By.xpath("//p[contains(text(),'Success!')]"));
WebElement Oops = driver.findElement(By.xpath("//p[contains(text(),'Oops!')]"));
if (Success.isDisplayed()) {
System.out.println("Payment was successful");
} else if(Oops.isDisplayed()) {
System.out.println("Payment was unsuccessful");
}
;
}
org.openqa.selenium.NoSuchElementException:没有这样的元素:无法找到元素:{“方法”:“xpath”,“选择器”:“//p[contains(text(),'Success!'])]”}
(会话信息:chrome=90.0.4430.85)
有关此错误的文档,请访问:
这与
if
语句无关。在查找“success”元素时引发异常。明确的等待应该有帮助:
WebDriverWait wait = new WebDriverWait(driver, 30);
WebElement Success = wait.Until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.xpath("//p[contains(.,'Success!')]"));
if (Success.isDisplayed())
我还发现contains(,“…”)
比contains(text(),“…”)
更宽容