我试图找到一个从PCA Predict API生成的元素,可在此链接中找到。 http://www.pcapredict.com/en-gb/address-capture-software/
我目前的代码如下所示,但由于找不到任何元素,它会抛出超时异常。然而xpath是正确的,因为我在开发人员工具中检查过它。
By PCA = By.id("inputPCAnywhere");
driver.findElement(PCA).clear();
driver.findElement(PCA).sendKeys(ValidPostcode);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[@class='pcaitem pcafirstitem']")));
driver.findElement(By.xpath("//div[@class='pcaitem pcafirstitem']")).click();
该元素在页面上可见,开发人员工具只返回一个xpath的结果,没有ID可以找到它。
答案 0 :(得分:1)
看起来默认情况下第一项被“选中”,导致它的类值等于以下内容:
<div class="pcaitem pcafirstitem pcaselected"...>...</div>
所有其他结果只有pcaitem
类,但没有pcaitem pcafirstitem
类值。
换句话说,你的问题是严格的类匹配。我会改进定位器以使class
属性具有部分匹配。例如,使用 CSS选择器:
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".pcaitem.pcafirstitem")));