AngularJS and selenium



我在angularjs站点中有以下文本框:

    <input type="text" ng-model="yourName" placeholder="Enter a name here" class="ng-  pristine ng-valid">

我想找到它使用硒网络驱动铬如下:

public class LoginTest {
   private WebDriver driver;
   private String baseUrl;
   @Before
    public void setUp() throws Exception {
System.setProperty("webdriver.chrome.driver",  "C:/Users/sneh.tripathi/AppData/Roaming/npm/node_modules/protractor/selenium/chromedriver.exe");
driver = new ChromeDriver();
   baseUrl = "http://angularjs.org/";
   driver.manage().timeouts().implicitlyWait(300, TimeUnit.SECONDS);
  }
   @Test
   public void testLogin() throws Exception {
    driver.get(baseUrl);
   driver.findElement(By.cssSelector("input.ng-valid.ng-dirty")).clear();
   driver.findElement(By.cssSelector("input.ng-valid.ng-dirty")).sendKeys("sneh");

但我无法运行上面的JUnit测试并获取NoSuchElementFound元素

您不应该使用这些类来与框架添加的元素进行交互,最好是以实际元素为目标。当然,除非您正在寻找数据未被触及/脏/无效的"特殊情况"。

通过添加名称或目标

driver.findElement(By.cssSelector("input[ng-model="yourName"]")).clear();

最新更新