我试图找到标签元素并用一些值填充它,但我无法得到它。我使用Java
,testNG
和Selenium
撰写以下代码。
我使用的代码在
下面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");
这是我在检查元素时收到的元素的详细信息。
答案 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");