使用类定位标签元素

时间:2016-09-28 02:44:38

标签: java selenium selenium-webdriver css-selectors testng

我试图找到标签元素并用一些值填充它,但我无法得到它。我使用JavatestNGSelenium撰写以下代码。

我使用的代码在

下面
driver.findElement(By.className("ng-pristine ng-empty ng-invalid ng-invalid-required ng-valid-maxlength ng-touched")).sendKeys("12345");

OR

driver.findElement(By.className("item-input-wrapper scan-input-label")).sendKeys("12345");

这是我在检查元素时收到的元素的详细信息。

enter image description here

2 个答案:

答案 0 :(得分:3)

实际上,selenium不支持使用By.className() 使用复合类名来定位元素。您应该尝试使用By.cssSelector()来查找<input>元素,如下所示: -

driver.findElement(By.cssSelector("input[placeholder = 'Scan Container Label']")).sendKeys("12345");

或更具体: -

driver.findElement(By.cssSelector("input[placeholder = 'Scan Container Label'][ng-model *= 'ctrl.currentValue']")).sendKeys("12345");

已修改: - 如果您想使用其姓名找到<label>元素,请尝试以下操作: -

driver.findElement(By.cssSelector("label.item-input-wrapper.scan-input-label"));

或者如果单个班级名称为: -

,您也可以使用By.className()与任何人找到它
driver.findElement(By.className("item-input-wrapper"));

答案 1 :(得分:1)

实际上selenium不支持使用By.className()定位元素 您可以尝试使用classname,css = tagname.classname

的css语法

即。

driver.findElement(By.cssSelector(input.item-input-wrapper)).sendKeys("12345");