<input name="txtAnswer" class="box1" id="txtAnswer" type="text" maxlength="20">
我的代码:
driver.findElement(By.name("txtAnswer")).sendKeys("green");
答案 0 :(得分:0)
要找到所需的元素,可以使用以下任一Locator Strategies:
使用cssSelector
:
driver.findElement(By.cssSelector("input#txtAnswer[class^='box'][name='txtAnswer']")).sendKeys("green")
使用xpath
:
driver.findElement(By.xpath("//input[starts-with(@class, 'box') and @id='txtAnswer'][@name='txtAnswer']")).sendKeys("green")
由于看到错误无法定位元素,您需要诱使 WebDruverWait 使元素可点击,您可以使用以下解决方案:
使用cssSelector
:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input#txtAnswer[class^='box'][name='txtAnswer']"))).sendKeys("green")
使用xpath
:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[starts-with(@class, 'box') and @id='txtAnswer'][@name='txtAnswer']"))).sendKeys("green")
答案 1 :(得分:0)
Id和class是网络元素的两个属性。以唯一地标识一个Web元素(使用一个ID),并使用类,标记名等常用属性来标识Web元素。 因此编写具有id属性的xpath会给您唯一的匹配。
答案:driver.findElement(By.id(“ txtAnswer”))。sendKeys(“ green”);