2016-09-28 64 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()'使用它的類來定位一個元素。但是這裏的問題只接受單一的類名。 –