当前位置: 首页 > 知识库问答 >
问题:

NoSuChelementException:没有这样的元素:无法定位元素错误,使用Selenium和Java单击注册按钮

茹建茗
2023-03-14
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个答案

王长卿
2023-03-14

单击元素()signat,需要为elementTobeclickable()导出WebDriverWait,您可以使用以下定位器策略:

>

  • csssselector:

    driver.get("https://softwaretestinggn8fe.herokuapp.com/");
    WebElement testUsername = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input#firstname")));
    testUsername.sendKeys("545");
    testUsername.submit();
    System.out.println(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("input#firstname +span"))).getText());
    

    XPath:

    driver.get("https://softwaretestinggn8fe.herokuapp.com/");
    WebElement testUsername = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@id='firstname']")));
    testUsername.sendKeys("545");
    testUsername.submit();
    System.out.println(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@id='firstname']//following-sibling::span[1]"))).getText());
    
    First Name can only contain characters.
    

      null

  •  类似资料: