所以我想测试一下这个链接的名字部分(https://softwaretestinggn8fe.herokuapp.com/)在java中使用selenium来显示错误消息“firstname只能包含字符”。当我在网站的firstname部分键入“545”时,将显示该消息。但是我的测试失败了,这是我得到的错误:
org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"*[name='submit']"}
(Session info: chrome=86.0.4240.198)
有人知道如何解决这个问题吗?
import org.testng.AssertJUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.annotations.Test;
public class WebTesting {
@Test
public void test1() {
System.setProperty("webdriver.chrome.driver", "C:/Users/mtecl/Desktop/Drivers/chromedriver.exe"); // configure path to the driver
WebDriver driver = new ChromeDriver();
driver.get("https://softwaretestinggn8fe.herokuapp.com/");
//Username
WebElement testUsername = driver.findElement(By.id("firstname")); //id: first name
testUsername.sendKeys("545");
//Button
driver.findElement(By.name("submit")).click();
String expected = "First Name can only contain characters.";
String actual = driver.findElement(By.xpath("html/body/div/main/div[2]/form/div[1]/span")).getText();
Assert.assertEquals(expected, actual);
}
}
1条答案
按热度按时间fjnneemd1#
至
click()
在元素注册中,您需要为elementToBeClickable()
您可以使用以下任一定位器策略:CSS选择器:
xpath:
控制台输出:
浏览器快照:
参考文献
关于nosuchelementexception,您可以在以下内容中找到一些相关的详细讨论:
线程“main”org.openqa.selenium.nosuchelementexception中出现异常:找不到元素://*[@id='login-email']
ie中的org.openqa.selenium.nosuchelementexception错误,但在chrome和firefox中同样的代码可以正常工作