2016-09-28 68 views
1

我试图找到标签元素并用一些值填充它,但我无法得到它。我使用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

+0

为什么你试图改变标签吗? –

+1

复制[多个类名查找div元素?](http://stackoverflow.com/questions/21713280/find-div-element-by-multiple-class-names) –

+0

@ScaryWombat :)他不是。在他的慷慨,他只是试图发送标签一些钥匙,看看它在冬天。当然,像你这样的袋熊可以同情。欢呼,队友:) –

回答

3

实际上硒不支持定位使用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

其实硒不支持定位使用By.className() 你可以尝试用类名的CSS语法元素,CSS = tagname.classname

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

硒支持'By.className()'使用它的类来定位一个元素。但是这里的问题只接受单一的类名。 –