Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium Java Can';t选择AngularJS元素_Java_Angular_Selenium_Xpath - Fatal编程技术网

Selenium Java Can';t选择AngularJS元素

Selenium Java Can';t选择AngularJS元素,java,angular,selenium,xpath,Java,Angular,Selenium,Xpath,我研究并尝试了几种不同的方法来识别断言测试中的这个元素。Xpath不起作用,ng模型不起作用。有什么想法吗 <input type="text" ng-class="{'ng-dirty': !merchant.name}" ng- model="merchant.name" required="" class="ng-pristine ng-valid ng-not-empty ng-valid-required ng-touched" style="">

我研究并尝试了几种不同的方法来识别断言测试中的这个元素。Xpath不起作用,ng模型不起作用。有什么想法吗

    <input type="text" ng-class="{'ng-dirty': !merchant.name}" ng-
    model="merchant.name" required="" class="ng-pristine ng-valid ng-not-empty 
    ng-valid-required ng-touched" style="">

可以考虑使用< <代码> XPath < /> >使用<代码>类< /代码>属性:

//input[@class='ng-pristine ng-valid ng-not-empty ng-valid-required ng-touched']
//input[@class='ng-pristine ng-valid ng-not-empty ng-valid-required ng-touched' and @type='text']
另一种策略可能是同时使用
类型
属性:

//input[@class='ng-pristine ng-valid ng-not-empty ng-valid-required ng-touched']
//input[@class='ng-pristine ng-valid ng-not-empty ng-valid-required ng-touched' and @type='text']

可以考虑使用< <代码> XPath < /> >使用<代码>类< /代码>属性:

//input[@class='ng-pristine ng-valid ng-not-empty ng-valid-required ng-touched']
//input[@class='ng-pristine ng-valid ng-not-empty ng-valid-required ng-touched' and @type='text']
另一种策略可能是同时使用
类型
属性:

//input[@class='ng-pristine ng-valid ng-not-empty ng-valid-required ng-touched']
//input[@class='ng-pristine ng-valid ng-not-empty ng-valid-required ng-touched' and @type='text']
这就成功了

    @Test
    public static void merchant_name() {
    driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);   
    WebElement merchant_name = 
    driver.findElement(By.xpath("html/body/div[1]/div/ng-
    view/div/div/div[2]/div/div/ng-form/div[3]/div/input"));
    Assert.assertEquals(merchant_name.getAttribute("value"), "Regression 
    Testing");
    }   
这就成功了

    @Test
    public static void merchant_name() {
    driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);   
    WebElement merchant_name = 
    driver.findElement(By.xpath("html/body/div[1]/div/ng-
    view/div/div/div[2]/div/div/ng-form/div[3]/div/input"));
    Assert.assertEquals(merchant_name.getAttribute("value"), "Regression 
    Testing");
    }   

你能用你尝试过的不同方法来扩展你的问题吗?没问题。以下是我对DebanjanB建议的尝试:@Test public static void merchant_name(){driver.manage().timeouts().implicitlyWait(15,TimeUnit.SECONDS);WebElement merchant_name=driver.findelelement(By.xpath(“input[@class='ng-pristine ng-valid ng-not-empty ng-valid-ng-required-ng-ng-toucted-ng'])));Assert.assertEquals(merchant_name.getAttribute(“value”),“回归测试”);}有例外吗?Afai当您调用xpath的getAttribute时,应该有NPE,但不返回任何内容?明白了。见下文。使用xPath尝试了不同的方法。谢谢大家。你能用你尝试过的不同方法来扩展你的问题吗?没问题。以下是我对DebanjanB建议的尝试:@Test public static void merchant_name(){driver.manage().timeouts().implicitlyWait(15,TimeUnit.SECONDS);WebElement merchant_name=driver.findelelement(By.xpath(“input[@class='ng-pristine ng-valid ng-not-empty ng-valid-ng-required-ng-ng-toucted-ng'])));Assert.assertEquals(merchant_name.getAttribute(“value”),“回归测试”);}有例外吗?Afai当您调用xpath的getAttribute时,应该有NPE,但不返回任何内容?明白了。见下文。使用xPath尝试了不同的方法。谢谢大家。