我正在尝试查找从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。

最佳答案

看起来默认情况下,第一项被“选中”,导致其类值等于以下值:

<div class="pcaitem pcafirstitem pcaselected"...>...</div>


以下所有其他结果只有pcaitem类,但没有一个pcaitem pcafirstitem类值。

换句话说,您的问题是严格的类匹配。我将改进定位器,使class属性具有部分匹配项。例如,使用CSS选择器:

wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".pcaitem.pcafirstitem")));

10-04 14:12